使用另一个数组过滤 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 } ]
广告