Javascript 如何从对象数组中获取元素?
Javascript 如何从对象数组中获取元素?,javascript,underscore.js,Javascript,Underscore.js,fkTableArr1d变成: [对象,对象,对象] 1对象是对象{id:“5”,标签:“fuel”} 现在,我应该如何获得带有标签fuel的元素的ID 下面的一个不起作用: var fkTableArr1d = new Array(); fkTableArr1d = _.map(fkTableArr2d, function(list, iterator, context) { return { "id " : list[0], "label " : list[
fkTableArr1d
变成:
[对象,对象,对象]
1对象是
对象{id:“5”,标签:“fuel”}
现在,我应该如何获得带有标签fuel
的元素的ID
下面的一个不起作用:
var fkTableArr1d = new Array();
fkTableArr1d = _.map(fkTableArr2d, function(list, iterator, context) {
return { "id " : list[0], "label " : list[1] };
});
使用以下任意代码段: 第1段: 第2段:
看起来您正在寻找: 查看列表并返回与所有属性匹配的第一个值 属性中列出的键值对
演示:Overdriven Fall,您使用值
'fuel'
作为索引,而不是查找哪个数组对象具有此值。检查我的答案。当我尝试(fkTableArr1d中的x)console.log(fkTableArr1d[x].id)的时,我得到了未定义的
或fkTableArr1d[x]['id']
在x
之前需要var
。现在您正在将其定义为全局。@OverdrivenFall请检查我提供的小提琴。小提琴演奏得很好。@Pavlo,请检查小提琴<仅当本地声明x
时,才需要code>var
。但是这里没有这样的限制。@Pavlo我完全同意你的看法。但是我没有想太多来演示这一点。它是有效的,我的数组中有一个错误(我用“id”:list[0],“label”:list[1]
而不是id:list[0],“label:list[1]
)使用字符串文字(带引号的)和“raw”标识符在这里应该没有区别,因为对于字符串文本,它无法识别.id
,.label
console.log(fkTableArr1d['fuel']);
var id = 0;
if(fkTableArr1d.label = 'fuel') id = fkTableArr1d.id;
fkTableArr1d =[{id : "5", label : "fuel1"}, {id : "6", label : "fuel"}, {id : "4", label : "fuel2"}];
for(x in fkTableArr1d)
if(fkTableArr1d[x].label == 'fuel')
alert(fkTableArr1d[x]['id']);//syntax1 for accessing object member. alerts '6'.
fkTableArr1d =[{id : "5", label : "fuel1"}, {id : "6", label : "fuel"}, {id : "4", label : "fuel2"}];
for(x in fkTableArr1d)
if(fkTableArr1d[x].label == 'fuel')
alert(fkTableArr1d[x].id);//syntax2 for accessing object member. alerts '6'.
_.findWhere(fkTableArr1d, {label : "fuel"});