1. indexOf
1、 indexOf
方法有两个缺点,一是不够语义化,它的含义是找到参数值的第一个出现位置,所以要去比较是否不等于-1
,表达起来不够直观。二是,它内部使用严格相等运算符(===
)进行判断,这会导致对NaN
的误判。
NaN!=NaN //ES5[NaN].indexOf(NaN)// -1 //ES6[1, 2, NaN].includes(NaN) // true
2、 fill
方法还可以接受第二个和第三个参数,用于指定填充的起始位置和结束位置。
如果填充的类型为对象,那么被赋值的是同一个内存地址的对象,而不是深拷贝对象。
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]]
3、数组实例的find
方法,用于找出第一个符合条件的数组成员。它的参数是一个回调函数,所有数组成员依次执行该回调函数,直到找出第一个返回值为true
的成员,然后返回该成员。如果没有符合条件的成员,则返回undefined
。数组实例的findIndex
方法的用法与find
方法非常类似,返回第一个符合条件的数组成员的位置,如果所有成员都不符合条件,则返回-1
。这两个方法都可以接受第二个参数,用来绑定回调函数的this
对象。
4、数组实例的copyWithin
방법 두 가지 단점이 있습니다. 하나는 의미론적이지 않다는 것입니다. 그 의미는 매개변수 값의 첫 번째 발생 위치를 찾는 것이므로 -1
은 표현하기에 충분히 직관적이지 않습니다. 둘째, 내부적으로 엄격한 항등 연산자를 사용합니다(== =
), 그 결과는
NaN
입니다. 코드>🎜 오판. 🎜🎜[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]
채우기
🎜방법 is 또한 패딩의 시작 및 끝 위치를 지정하는 두 번째 및 세 번째 인수를 허용합니다. 🎜🎜채워진 유형이 객체인 경우 동일한 메모리가 할당됩니다. 객체가 아닌 딥 카피 객체입니다. 🎜
//ES6Array.of() // []Array.of(undefined) // [undefined]Array.of(1) // [1]Array.of(1, 2) // [1, 2]//ES5Array() // []Array(3) // [, , ,]Array(3, 11, 8) // [3, 11, 8]
find
🎜 메서드는 조건을 충족하는 첫 번째 배열 멤버를 찾는 데 사용됩니다. 해당 매개변수는 콜백 함수이며, 모든 배열 구성원은 첫 번째 반환 값을 찾을 때까지 콜백 함수를 순차적으로 실행합니다. 🎜true
🎜 멤버를 선택한 다음 해당 멤버를 반환합니다. 자격을 갖춘 구성원이 없는 경우 🎜정의되지 않음</code >을 반환합니다. 🎜. 🎜🎜배열의 🎜<code style="font-family:Consolas, 'Courier New', Courier, FreeMono, monospace;padding-left:3px;padding-right:3px;">findIndex
🎜 메서드 인스턴스 사용법은 🎜find
와 매우 유사합니다. 🎜 메소드, return 기준을 충족하는 첫 번째 배열 멤버의 위치를 반환하거나, 모든 멤버가 기준을 충족하지 않는 경우 🎜-1
🎜. 🎜🎜두 메서드 모두 콜백 함수를 바인딩하는 데 사용되는 두 번째 매개 변수를 허용할 수 있습니다.🎜이
🎜 개체입니다. 🎜🎜🎜🎜🎜4, 🎜어레이 인스턴스의 🎜copyWithin
🎜 메소드는 현재 배열 내에서 지정된 위치의 멤버를 다른 위치에 복사합니다(원래 멤버는 덮어쓰게 됩니다). , 그런 다음 현재 배열을 반환합니다. 즉, 이 방법을 사용하면 현재 배열이 수정됩니다. 🎜🎜🎜🎜它接受三个参数。
target(必需):从该位置开始替换数据。如果为负值,表示倒数。
start(可选):从该位置开始读取数据,默认为 0。如果为负值,表示倒数。
end(可选):到该位置前停止读取数据,默认等于数组长度。如果为负值,表示倒数。
[1, 2, 3, 4, 5].copyWithin(0, 2, 4)// [3, 4, 3, 4, 5]
4、Array.of
基本上可以用来替代Array()
或new Array()
,并且不存在由于参数不同而导致的重载。它的行为非常统一。
//ES6Array.of() // []Array.of(undefined) // [undefined]Array.of(1) // [1]Array.of(1, 2) // [1, 2]//ES5Array() // []Array(3) // [, , ,]Array(3, 11, 8) // [3, 11, 8]
Array.of
方法可以用下面的代码模拟实现。
function ArrayOf(){ return [].slice.call(arguments);}
相关推荐:
위 내용은 js 배열 지식 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!