欢迎来到JS复习专栏,本文章主要内容为数组的类型相关方法和元素添加删除的相关方法
文章目录
与数组类型相关的方法
isArray():判断是否为数组
布尔值 = Array.isArray(被检测的数组)
;
toString():数组转换为字符串
字符串 = 数组.toString();
解释:把数组转换成字符串,每一项用,分割。
Array.from():将伪数组转换为真数组
array = Array.from(arrayLike);
作用:将伪数组或可遍历对象转换为真数组。
伪数组与真数组的区别:
伪数组:包含 length 属性的对象或可迭代的对象。
另外,伪数组的原型链中没有 Array.prototype
,而真数组的原型链中有 Array.prototype
。因此伪数组没有数组的一般方法,比如 pop()、join() 等方法。
伪数组举例
<body>
<button>按钮1</button>
<button>按钮2</button>
<button>按钮3</button>
<script>
let btnArray = document.getElementsByTagName('button');
console.log(btnArray);
console.log(btnArray[0]);
</script>
</body>
上面的布局中,有三个 button 标签,我们通过getElementsByTagName获取到的btnArray实际上是伪数组,并不是真实的数组.
Array.of():创建数组
Array.of(value1, value2, value3);
根据参数里的内容,创建数组。
new Array()
和 Array.of()
的区别在于:当参数只有一个时,前者表示数组的长度,后者表示数组中的内容。
数组元素添加和删除方法
push()
push()
:向数组的最后面插入一个或多个元素,返回结果为新数组的长度。会改变原数组,因为原数组变成了新数组。
pop()
pop()
:删除数组中的最后一个元素,返回结果为被删除的元素。
unshift()
unshift()
:在数组最前面插入一个或多个元素,返回结果为新数组的长度。会改变原数组,因为原数组变成了新数组。插入元素后,其他元素的索引会依次调整。
shift()
shift()
:删除数组中的第一个元素,返回结果为被删除的元素。
slice()
slice()
:从数组中提取指定的一个或者多个元素,返回结果为新的数组(不会改变原来的数组)。
很多前端开发人员会用 slice()
将伪数组,转化为真数组。写法如下:
// 方式1
array = Array.prototype.slice.call(arrayLike);
// 方式2
array = [].slice.call(arrayLike);
ES6 看不下去这种蹩脚的转化方法,于是出了一个新的 API:(专门用来将伪数组转化成真数组)
array = Array.from(arrayLike);
也就是上面说到的。
。
splice()
splice()
:从数组中删除指定的一个或多个元素,返回结果为被删除元素组成的新数组(会改变原来的数组)。
备注:该方法会改变原数组,会将指定元素从原数组中删除;被删除的元素会封装到一个新的数组中返回。