我正在尝试搜索数组并根据类别查找特定对象.
但是当我运行我的代码时,我只得到一个结果.但在下面的例子中,我应该有两个结果,因为它cat 2存在于两个对象中!
这就是我所拥有的:
var storedArray = [{
"title": "test title 1",
"date_added": "2018-09-26",
"url": "someurl.com",
"filename": "file 1",
"category": "cat 1"
}, {
"title": "test title 2",
"date_added": "2018-10-25",
"url": "someurl.com",
"filename": "file 2",
"category": "cat 2"
},{
"title": "test title 3",
"date_added": "2018-10-25",
"url": "someurl.com",
"filename": "file 3",
"category": "cat 2"
}];
var result = storedArray.find( audio => audio.category === 'cat 2' );
console.log(result);Run Code Online (Sandbox Code Playgroud)
有人可以就这个问题提出建议吗?
该
find()方法返回数组中第一个满足提供的测试函数的元素的值.否则返回undefined.
该
filter()方法创建一个新数组,其中包含通过所提供函数实现的测试的所有元素.
从上面,你必须filter()用来获得预期的结果:
var storedArray = [{
"title": "test title 1",
"date_added": "2018-09-26",
"url": "someurl.com",
"filename": "file 1",
"category": "cat 1"
}, {
"title": "test title 2",
"date_added": "2018-10-25",
"url": "someurl.com",
"filename": "file 2",
"category": "cat 2"
},{
"title": "test title 3",
"date_added": "2018-10-25",
"url": "someurl.com",
"filename": "file 3",
"category": "cat 2"
}];
var result = storedArray.filter( audio => audio.category === 'cat 2' );
console.log(result);Run Code Online (Sandbox Code Playgroud)