1
0
mirror of https://github.com/ruanyf/es6tutorial.git synced 2025-05-28 21:32:20 +00:00

add array/copywithin

This commit is contained in:
ruanyf 2015-09-06 21:10:20 +08:00
parent ed5f62d589
commit d660de64af

View File

@ -110,6 +110,51 @@ function ArrayOf(){
} }
``` ```
## 数组实例的copyWithin()
数组实例的copyWithin方法在当前数组内部将指定位置的成员复制到其他位置会覆盖原有成员然后返回当前数组。也就是说使用这个方法会修改当前数组。
它接受三个参数。
- target必需从该位置开始复制数据。
- start必需从该位置开始读取数据。如果为负值表示倒数。
- end可选到该位置前停止读取数据默认等于数组长度。如果为负值表示倒数。
这三个参数都应该是数值,如果不是,会自动转为数值。
```javascript
[1, 2, 3, 4, 5].copyWithin(0, 3)
// [4, 5, 3, 4, 5]
```
上面代码表示将从3号位直到数组结束的成员4和5复制到从0号位开始的位置结果覆盖了原来的1和2。
下面是更多例子。
```javascript
// 将3号位复制到0号位
[1, 2, 3, 4, 5].copyWithin(0, 3, 4)
// [4, 2, 3, 4, 5]
// -2相当于3号位-1相当于4号位
[1, 2, 3, 4, 5].copyWithin(0, -2, -1)
// [4, 2, 3, 4, 5]
// 将3号位复制到0号位
[].copyWithin.call({length: 5, 3: 1}, 0, 3)
// {0: 1, 3: 1, length: 5}
// 将2号位到数组结束复制到0号位
var i32a = new Int32Array([1, 2, 3, 4, 5]);
i32a.copyWithin(0, 2);
// Int32Array [3, 4, 5, 4, 5]
// 对于没有部署TypedArray的copyWithin方法的平台
// 需要采用下面的写法
[].copyWithin.call(new Int32Array([1, 2, 3, 4, 5]), 0, 3, 4);
// Int32Array [4, 2, 3, 4, 5]
```
## 数组实例的find()和findIndex() ## 数组实例的find()和findIndex()
数组实例的find方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数所有数组成员依次执行该回调函数直到找出第一个返回值为true的成员然后返回该成员。如果没有符合条件的成员则返回undefined。 数组实例的find方法用于找出第一个符合条件的数组成员。它的参数是一个回调函数所有数组成员依次执行该回调函数直到找出第一个返回值为true的成员然后返回该成员。如果没有符合条件的成员则返回undefined。
@ -168,10 +213,8 @@ new Array(3).fill(7)
fill()还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。 fill()还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
```javascript ```javascript
['a', 'b', 'c'].fill(7, 1, 2) ['a', 'b', 'c'].fill(7, 1, 2)
// ['a', 7, 'c'] // ['a', 7, 'c']
``` ```
## 数组实例的entries()keys()和values() ## 数组实例的entries()keys()和values()