我想获取一个对象数组并过滤每个对象以仅返回键与数组中的项目匹配的属性。
例如:
const myKeys = ['key_1', 'key_3'];
const myArray = [
{
key_1: 'Some Value A',
key_2: 'Some Other Value A',
key_3: 'Some Final Value A',
},
{
key_1: 'Some Value B',
key_2: 'Some Other Value B',
key_3: 'Some Final Value B',
},
{
key_1: 'Some Value C',
key_2: 'Some Other Value C',
key_3: 'Some Final Value C',
},
];
应该产生以下结果:
const result = [
{
key_1: 'Some Value A',
key_3: 'Some Final Value A',
},
{
key_1: 'Some Value B',
key_3: 'Some Final Value B',
},
{
key_1: 'Some Value C',
key_3: 'Some Final Value C',
},
];
我相信这应该可以通过结合.map()
and .filter()
但我不确定如何最好地使用 ES6 实现以下效果:
const filteredData = (array, keys) => {
const newArr = [];
for (let i = 0; i < myArray.length; i++) {
const item = myArray[i];
let newObj = {};
for (let j = 0; j < myKeys.length; j++) {
const filter = myKeys[j];
newObj[filter] = item[filter];
}
newArr.push(newObj);
}
return newArr;
}
console.log(filteredData(myArray, myKeys));