欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  web前端

js数组知识总结分享

程序员文章站 2022-05-23 12:52:59
...
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方法,在当前数组内部,将指定位置的成员复制到其他位置(会覆盖原有成员),然后返回当前数组。也就是说,使用这个方法,会修改当前数组。

它接受三个参数。

  • 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数组知识总结分享的详细内容,更多请关注其它相关文章!