【发布时间】:2020-07-29 13:33:00
【问题描述】:
我将解释我的问题。我没有时间考虑更多,而且我有一个阻止程序,我无法弄清楚,所以任何帮助将不胜感激。例如,我有一个对象数组(可以是包含 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 等.
【问题讨论】:
-
请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。
-
遍历数组是给定的,因此问题是从对象中删除不需要的键。您可以创建一个新对象并通过迭代
keys来设置它的属性,或者使用delete将它们从现有对象中删除。前者意味着你要使用arr.map(),而后者是arr.forEach()的工作
标签: javascript arrays ecmascript-6 filter reduce