让我说我有:
let list = [{a: {b: 'foo'}}, {a: {b: 'bar'}}]
我想最终:
list = [{a: 'foo'}, {a: 'bar'}]
这有效:
list = list.map(d => {d.a = d.a.b; return d})
但我有一种不好的感觉,即改变价值是一个坏主意。
有更清洁的方式吗?我的解决方案实际上有效吗?
答案 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);