用自己的子元素之一替换对象的元素

时间:2017-08-17 14:10:06

标签: javascript dictionary enumeration

让我说我有:

let list = [{a: {b: 'foo'}}, {a: {b: 'bar'}}]

我想最终:

list = [{a: 'foo'}, {a: 'bar'}]

这有效:

list = list.map(d => {d.a = d.a.b; return d})

但我有一种不好的感觉,即改变价值是一个坏主意。

有更清洁的方式吗?我的解决方案实际上有效吗?

2 个答案:

答案 0 :(得分:1)

它没有改变价值。

map方法仅通过为数组中的每个项目应用callback提供的函数来创建新数组。

  

map()方法创建一个新数组,其中包含调用a的结果   为调用数组中的每个元素提供了函数。

要更改值,您可以使用forEach方法。

答案 1 :(得分:1)

你可以使用Array#forEach并原位更改对象,因为你不需要返回一个新数组,而你已经改变了数组的原始对象。

let list = [{ a: { b: 'foo' } }, { a: { b: 'bar' } }];

list.forEach(d => d.a = d.a.b);

console.log(list);