从多个对象数组中筛选属性

3
我有一个对象数组,看起来像这样
const data = [
    {id: 1, locale: 'en'},
    {id: 2, locale: 'nl'}
]

现在我正在尝试过滤数组中每个项目的语言环境属性(并非永久删除,而只是这一次过滤掉),因此我的数据理想情况下应该如下所示:
const data = [
    {id: 1},
    {id: 2}
]

我已经尝试过了

使用map函数来展开属性,但我卡在了如何继续下去的地方。

实际上我想排除其他的值。因为可能会有更多的数值。 - Miguel Stevens
3个回答

10

1
这是一个完美的解决方案。+1 - Maheer Ali

0

以下是使用 map() reduce() filter() 实现该方法的方式。这种方法适用于需要动态筛选键的情况。

const data = [
    {id: 1, locale: 'en'},
    {id: 2, locale: 'nl'}
]
let filter = ['locale']
function removeKeys(keys,arr){
  return data.map(x => Object.keys(x).filter(b => !keys.includes(b)).reduce((ac,a) => ({...ac,[a]:x[a]}),{}))
}

console.log(removeKeys(filter,data));


0

这样做:({key:value}) 并返回 map

针对您的情况

this.translations.map(translation => {
    return ({['id']:translation.id })
})

工作示例

const data = [{id: 1, locale: 'en'},{id: 2, locale: 'nl'}];

var res = data.map(a=> ({['id']:a.id}));
console.log(res)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接