我要解释一下我的问题。我没有时间更多地考虑这个问题,而且我有一个拦截器,我无法弄清楚,所以任何帮助将不胜感激。例如,我有一个对象数组(可以是包含 100 多个元素的数组):
const arr = [
{ value: '1', id: 1, number: 1, other: 'example', data: '6' },
{ value: '2', id: 2, number: 2, other: 'example', data: '7' },
{ value: '3', id: 3, number: 3, other: 'example', data: '8' },
{ value: '4', id: 4, number: 4, other: 'example', data: '9' },
{ value: '5', id: 5, number: 4, other: 'example', data: '10' },
];
在另一个数组中,我有包含特定键的字符串:
const keys = ['value', 'id', 'number'];
我的问题是我想返回变量arr
仅包含基于keys
变量上的值的对象。类似这样的事情:
const arr = [
{ value: '1', id: 1, number: 1 },
{ value: '2', id: 2, number: 2 },
{ value: '3', id: 3, number: 3 },
{ value: '4', id: 4, number: 4 },
{ value: '5', id: 5, number: 4 },
];
我希望动态地拥有它,因为 keys
变量中的值不是常量,可以是 value
、other
、data
或仅 data
或 id
和 other
等
最佳答案
创建一个函数,该函数将根据键数组返回并使用该函数进行映射..
const arr = [
{ value: '1', id: 1, number: 1, other: 'example', data: '6' },
{ value: '2', id: 2, number: 2, other: 'example', data: '7' },
{ value: '3', id: 3, number: 3, other: 'example', data: '8' },
{ value: '4', id: 4, number: 4, other: 'example', data: '9' },
{ value: '5', id: 5, number: 4, other: 'example', data: '10' },
];
const keys = ['value', 'id', 'number'];
function pick(obj, keys){
let result = {};
for(let i=0; i<keys.length; i++){
result[keys[i]] = obj[keys[i]];
}
return result;
}
let finalArr = arr.map( value => pick(value,keys));
console.log(finalArr);
关于javascript - 如何使用基于其他数组的特定动态键来过滤/减少对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61248073/