const arrTest = (len)=>(new Array(len)).fill({}).map(e=>{e.age=Math.random()*100;e.page=Math.random()*100;return e;})
如果fill是深拷贝那么无事发生皆大欢喜。可惜他是浅拷贝,所以最后数组里是相同的值。
const arrTest = (len)=>(new Array(len)).fill({}).map(e=>{e={age:Math.random()*100,page:Math.random()*100};return e;})
直接改不行,那我只能new一个新的来赋值了。
MDN对此的叙述是:当一个对象被传递给 fill
方法的时候, 填充数组的是这个对象的引用。
另外要注意:匿名函数不能直接返回赋值表达式。
这个问题MDN也没说清楚,还得看阮一峰老师。