通过字符串数组从对象数组中搜索以在 JavaScript 中获取对象数组
假设,我们有一个字符串数组和另一个对象数组,如下所示 −
const arr1 = [ '1956888670', '2109171907', '298845084' ]; const arr2 = [ { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' }, { KEY: '1956888670', VALUE: 'Sivakesava Nallam' }, { KEY: '2109171907', VALUE: 'udm analyst' }, { KEY: '298845084', VALUE: 'Mukesh Nagora' }, { KEY: '2007285563', VALUE: 'Yang Liu' }, { KEY: '1976156380', VALUE: 'Imtiaz Zafar' }, ];
我们需要编写一个 JavaScript 函数,它接受两个这样的数组。然后我们的函数应该返回第二个数组的一个经过筛选的版本,其中仅包含其 “KEY” 属性作为一个字符串列在第一个数组中的那些对象。
示例
代码如下 −
const arr1 = [ '1956888670', '2109171907', '298845084' ]; const arr2 = [ { KEY: '1262875245', VALUE: 'Vijay Kumar Verma' }, { KEY: '1956888670', VALUE: 'Sivakesava Nallam' }, { KEY: '2109171907', VALUE: 'udm analyst' }, { KEY: '298845084', VALUE: 'Mukesh Nagora' }, { KEY: '2007285563', VALUE: 'Yang Liu' }, { KEY: '1976156380', VALUE: 'Imtiaz Zafar' }, ]; const filterByKey = (arr1 = [], arr2 = []) => { let res = []; res = arr2.filter(el => { const { KEY } = el; const index = arr1.indexOf(KEY); return index !== -1; }); return res; }; console.log(filterByKey(arr1, arr2));
输出
并且控制台中的输出将是 −
[ { KEY: '1956888670', VALUE: 'Sivakesava Nallam' }, { KEY: '2109171907', VALUE: 'udm analyst' }, { KEY: '298845084', VALUE: 'Mukesh Nagora' } ]
广告