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:
parent
ed5f62d589
commit
d660de64af
@ -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方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined。
|
||||
@ -168,10 +213,8 @@ new Array(3).fill(7)
|
||||
fill()还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
|
||||
|
||||
```javascript
|
||||
|
||||
['a', 'b', 'c'].fill(7, 1, 2)
|
||||
// ['a', 7, 'c']
|
||||
|
||||
```
|
||||
|
||||
## 数组实例的entries(),keys()和values()
|
||||
|
Loading…
x
Reference in New Issue
Block a user