查找数组中元素的最有效方法是什么?

时间:2015-12-29 23:36:14

标签: javascript jquery

我从后端获得了一个对象数组,目前只有三个元素,但将来会更多。

[{"code":"lng.dropdown.home","text":"Inicio"},

{"code":"lng.dropdown.shop","text":"Tienda"},  

{"code":"lng.button.support","text":"Soporte"}]

javascript中最有效的方法是通过代码在此数组中查找元素,并返回相关的文本?我们可以在这里使用lambdas表达式吗?

2 个答案:

答案 0 :(得分:0)

当不使用其他库时,我通常会映射然后找到indexOf,如下所示:

data[data.map(function(a){ return a.code }).indexOf("code I am trying to find")];

这将返回索引处的数据元素,其中代码与您尝试查找的代码匹配。

当我将lodash作为依赖项时,我通常会这样做:

_.find(data, {code:"code I am trying to find"})

(我认为这是正确的语法)

编辑:

没有意识到你已经在使用JQuery了,使用$ .grep的答案可能是最好的。

答案 1 :(得分:0)

您可以使用数组过滤器来查找与您的代码属性匹配的嵌套对象:



var arr =
[{"code":"lng.dropdown.home","text":"Inicio"},

{"code":"lng.dropdown.shop","text":"Tienda"},  

{"code":"lng.button.support","text":"Soporte"}];

var res = arr.filter(function(x){
return x.code == 'lng.dropdown.home'
})

console.log(res[0])




[]。过滤器返回一个数组,其中的对象在回调中返回true。

就效率而言,循环被证明更快,但使用更高阶的方法可以获得抽象。