数组相关知识点总结(一)

204 阅读2分钟

昨天看了红宝书数组这一部分的知识,今天来做一个小的整理,方便后期记忆。

Array.from()

概念:调用函数的方式:Array.from(arrayLikeOrIterable[,mapFunction[,thisArg]]); 里面的参数: 1.1、arrayLikeOrIterable:此参数为强制性参数,可以是一个类似数组的对象或一个iterable。 类似数组的对象的概念:具有length属性。只要有length属性,就可以认为这个对象类似于数组 var obj = {   0: 'a',   1: 'b',   2: 'c',   length: 3 }; 就像上方代码就是一个类似数组的对象。它不具备数组的特有的方法,比如push方法。还有就是类似数组的对象的length属性不是动态值,它不会像数组那样随着数据的变化而变化,如下方代码:

   obj[3] = 'd'; 
   obj.length // 0

哪些是类似数组的对象:函数的arguments对象,大多数的DOM元素,以及字符串。 iterable的相关概念:在es6中引入了新的Map对象和Set对象,而Map和Set无法通过下标遍历。因此为了统一集合新增了iterable类型,它包含了Array,Map,Set 1.2、mapFunction:可选的参数,mapFunction(item,index){...}是在集合中的每一项上调用的函数。返回值将插入到新的集合中。上个代码大家看下就懂了。

const someNumbers = { '0': 10, '1': 15, length: 2 };
Array.from(someNumbers, value => value * 2); // => [20, 30]

1.3、thisArg:可选参数,执行回调函数mapFunction时this对象。这个很少使用。

1.4、下面就说说Array.from的使用场景:

1.4.1、将类数组转化成数组

1.png 上面代码图片应该够详细了。

1.4.2、克隆一个数组 2.png 1.4.3、使用值填充数组

3.png

1.4.4、使用对象填充数组

4.png 1.4.5、数组去重

image.png

Array.of()

概念:Array.of()方法创建一个具有可变数量参数的新数组实例,而不考虑参数的数量和类型。 语法: Array.of(element0[, element1[, ...[, elementN]]])

参数:任意个参数、按顺序成为返回数组中的元素; 区别:Array.of()和Array构造函数之间的区别在于处理整数参数;话不多说上图:

image.png

数组空位

概念:数组的空位是指某个位置没有任何值。

image.png 没有任何值不是undefined,undefined表示有值哦! 数组一般不建议有数组空位,因为数组的各种方法对数组空位的处理都不一样。这一部分请参考下面链接:juejin.cn/post/684490…