diff --git a/docs/array.md b/docs/array.md index 2246ec7..0352bba 100644 --- a/docs/array.md +++ b/docs/array.md @@ -628,6 +628,20 @@ new Array(3).fill(7) 上面代码表示,`fill`方法从 1 号位开始,向原数组填充 7,到 2 号位之前结束。 +注意,如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。 + +```javascript +let arr = new Array(3).fill({name: "Mike"}); +arr[0].name = "Ben"; +arr +// [{name: "Ben"}, {name: "Ben"}, {name: "Ben"}] + +let arr = new Array(3).fill([]); +arr[0].push(5); +arr +// [[5], [5], [5]] +``` + ## 数组实例的 entries(),keys() 和 values() ES6 提供三个新的方法——`entries()`,`keys()`和`values()`——用于遍历数组。它们都返回一个遍历器对象(详见《Iterator》一章),可以用`for...of`循环进行遍历,唯一的区别是`keys()`是对键名的遍历、`values()`是对键值的遍历,`entries()`是对键值对的遍历。