由它自己的子元素的一个替换的对象的元素
比方说,我有:由它自己的子元素的一个替换的对象的元素
let list = [{a: {b: 'foo'}}, {a: {b: 'bar'}}]
我想结束了:
list = [{a: 'foo'}, {a: 'bar'}]
这工作:
list = list.map(d => {d.a = d.a.b; return d})
但我有一种不好的感觉,改变价值是一个坏主意。
有没有更清洁的方法?我的解决方案确实有效吗?
您可以使用Array#forEach
并原位更改对象,因为当您已经改变数组的原始对象时,无需返回新数组。
let list = [{ a: { b: 'foo' } }, { a: { b: 'bar' } }];
list.forEach(d => d.a = d.a.b);
console.log(list);
这将是更好?为什么? – MasterScrat
没有建立一个新阵列,没有重新分配。 –
@MasterScrat,看看这里的简短比较https://stackoverflow.com/questions/354909/is-there-a-difference-between-foreach-and-map –
它没有改变价值。
map
方法只通过为数组中的每个项目应用callback
提供的函数创建一个新数组。
的地图()方法创建与主叫呼叫阵列中的每个元件上的 提供的函数的结果的新的数组。
要改变原有的值,可以使用forEach
方法。
有什么不对您的解决方案 – Shard
使用的foreach而不是地图 –