我从后端获得了一个对象数组,目前只有三个元素,但将来会更多。
[{"code":"lng.dropdown.home","text":"Inicio"},
{"code":"lng.dropdown.shop","text":"Tienda"},
{"code":"lng.button.support","text":"Soporte"}]
javascript中最有效的方法是通过代码在此数组中查找元素,并返回相关的文本?我们可以在这里使用lambdas表达式吗?
答案 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。
就效率而言,循环被证明更快,但使用更高阶的方法可以获得抽象。