【发布时间】:2019-09-23 12:41:59
【问题描述】:
我想获取一个对象数组并过滤每个对象以仅返回键与数组中的项目匹配的属性。
例如:
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() 和 .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));
【问题讨论】:
标签: javascript