我正在接收一组对象作为来自 API 调用的响应数据。
data = [{obj1},{obj2},{obj3},{obj4},{obj5}]
obj1 = {
prop1: 'value1',
prop2: 'value2',
prop3: 'value3',
}
我正在尝试使用数组,比方说:['prop2', 'prop3'] 来过滤对象数组并返回对象子集的数组。
[{filteredObj1},{filteredObj2},{filteredObj3},{filteredObj4},{filteredObj5}]
filteredObj1 = {
prop2: 'value2',
prop3: 'value3'
}
等等...
最初尝试了以下方法:
const arrayOfPropsIWant = ['prop1', 'prop2']
data.forEach((el) => {
const filtered = (({ ...arrayOfPropsIWant }) => ({ ...arrayOfPropsIWant }))(el);
})
当我不传递 ...arrayOfPropsIWant 来解构时,这有效,而是显式传递了 props (({ prop1, prop2 })
我正在尝试构建自定义 ReactJS Hook ,有什么方法可以实现此目的吗?
最佳答案
你应该使用Array.map:
const data = [
{ prop1: 'value1', prop2: 'value2', prop3: 'value3' },
{ prop1: 'value1', prop2: 'value2', prop3: 'value3'},
{ prop1: 'value1', prop2: 'value2', prop3: 'value3'}
]
const arrayOfPropsIWant = ['prop1', 'prop2']
const filtered = data.map((elem) => {
const out = {};
arrayOfPropsIWant.forEach(prop => out[prop] = elem[prop]);
return out;
}
);
console.log(filtered);
关于javascript - 如何获取数组中的对象子集并将数组作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60791105/