使用另一个数组过滤 JavaScript 对象数组
假设我们有一个这样的对象数组 −
const arr = [
{area: 'NY', name: 'Bla', ads: true},
{area: 'DF', name: 'SFS', ads: false},
{area: 'TT', name: 'SDSD', ads: true},
{area: 'SD', name: 'Engine', ads: false},
{area: 'NSK', name: 'Toyota', ads: false},
];我们需要编写一个 JavaScript 函数,该函数将一个这样的数组作为第一个参数,并将一个字符串文字数组作为第二个参数。
然后,我们的函数应该过滤输入对象数组,只包含那些“area”属性包含在文字数组(第二个参数)中的对象。
示例
代码为 −
const arr = [
{area: 'NY', name: 'Bla', ads: true},
{area: 'DF', name: 'SFS', ads: false},
{area: 'TT', name: 'SDSD', ads: true},
{area: 'SD', name: 'Engine', ads: false},
{area: 'NSK', name: 'Toyota', ads: false},
];
const keys = ['NY', 'SD'];
const filterByArea = (arr = [], keys = []) => {
const res = [];
for(let i = 0; i < arr.length; i++){
const { area } = arr[i];
if(keys.includes(area)){
res.push(arr[i]);
};
};
return res;
};
console.log(filterByArea(arr, keys));输出
而控制台中的输出为 −
[
{ area: 'NY', name: 'Bla', ads: true },
{ area: 'SD', name: 'Engine', ads: false }
]
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP