如果一个数组位于另一个数组内,如何过滤?
我应该如何循环这个?
var jobs = [
{
'id': '1',
'departments': [{'name': 'Finance'}],
'offices': [{'name': 'US'}, {'name': 'Brazil'}]
},
{
'id': '1',
'departments': [{'name': 'Finance'}],
'offices': [{'name': 'Paris'}, {'name': 'China'}]
}
];
var results = jobs.filter(function(o)) {
return o.offices[0].name == 'US';
} // get office US;
最佳答案
当您想按内部数组中可能存在的值过滤数组时,可以使用 Array#some
在内部阵列上。如果数组中至少有一个元素满足条件,Array#some
方法将返回 true,并停止迭代。
var jobs = [{"id":"1","departments":[{"name":"Finance"}],"offices":[{"name":"US"},{"name":"Brazil"}]},{"id":"1","departments":[{"name":"Finance"}],"offices":[{"name":"Paris"},{"name":"China"}]}];
var jobsWithoutUs = jobs.filter(function(job) {
return job.offices.some(function(office) {
return office.name === 'US';
});
});
console.log(jobsWithoutUs);
关于javascript - 过滤内部数组javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44883612/