我试图通过其内容过滤对象数组,即:
https://jsfiddle.net/z7g3unyu/2/
var arr =[
{
"uid": "1",
"name": "John Doe"
},
{
"uid": "2",
"name": "Kate Roe"
}
];
var newArr = arr.filter(function(e) {
return e["uid"] == 1;
});
alert(newArr["name"]);
我想创建一个只包含一个uid等于1的对象的新数组。但是,它给了我undefined。我做错了什么?
答案 0 :(得分:3)
在此处指定值:
return e["uid"] = 1;
使用double equals ==
检查相等的值:
return e["uid"] == 1;
请注意,filter()
会返回数组,而非对象。使用括号表示法[0]
从数组中获取第一个元素。
请参阅下面的工作代码段
var arr = [{
"uid": "1",
"name": "John Doe"
}, {
"uid": "2",
"name": "Kate Roe"
}];
var newArr = arr.filter(function(e) {
return e["uid"] == 1;
});
alert(newArr[0]["name"]);
答案 1 :(得分:1)
使用Lodash
_.filter(array, { uid: 1 });