>  기사  >  웹 프론트엔드  >  js 배열 지식 요약 및 공유

js 배열 지식 요약 및 공유

小云云
小云云원래의
2018-03-28 15:52:491315검색


1. indexOf1、 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]
🎜🎜🎜🎜🎜3. 🎜어레이 인스턴스의 🎜find🎜 메서드는 조건을 충족하는 첫 번째 배열 멤버를 찾는 데 사용됩니다. 해당 매개변수는 콜백 함수이며, 모든 배열 구성원은 첫 번째 반환 값을 찾을 때까지 콜백 함수를 순차적으로 실행합니다. 🎜true🎜 멤버를 선택한 다음 해당 멤버를 반환합니다. 자격을 갖춘 구성원이 없는 경우 🎜정의되지 않음을 반환합니다. 🎜. 🎜🎜배열의 🎜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数组操作实例分析

JS数组去重方法总结

js数组常用的一些排序法

위 내용은 js 배열 지식 요약 및 공유의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.