在数组中搜索仅返回第一个结果

Jam*_*jie 2 javascript arrays

我正在尝试搜索数组并根据类别查找特定对象.

但是当我运行我的代码时,我只得到一个结果.但在下面的例子中,我应该有两个结果,因为它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)

有人可以就这个问题提出建议吗?

Dan*_*eng 6

Array.prototype.find()返回找到的第一个元素.您正在寻找Array.prototype.filter()


Mam*_*mun 5

Array.prototype.find()

该find()方法返回数组中第一个满足提供的测试函数的元素的值.否则返回undefined.

Array.prototype.filter()

该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)