This question already has answers here:
How to filter object array based on attributes?
(13个回答)
3年前关闭。
我正在尝试通过其内容过滤对象数组:
https://jsfiddle.net/z7g3unyu/2/
我想创建一个新数组,其中仅包含一个uid等于1的对象。但是,它给了我未定义的含义。我究竟做错了什么?
使用双等于
请注意,
参见下面的工作片段
(13个回答)
3年前关闭。
我正在尝试通过其内容过滤对象数组:
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的对象。但是,它给了我未定义的含义。我究竟做错了什么?
最佳答案
在这里分配值:
return e["uid"] = 1;
使用双等于
==
检查值是否相等: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"]);