JavaScript 数组的常用方法(二)
前言
接上篇avaScript 数组的常用方法(一)。
7、Array.push() / Array.pop()
这两个方法是在数组的末尾添加/移除元素。
//注意push()方法可以一次性添加多个值
let arr1 = [1,2,3,4];
let arr2 = [1,2,3,4];
let arr3 = [1,2,3,4];
arr1.push(5,6,7); //[1,2,3,4,5,6,7]
arr2.push([5,6,7]); //[1,2,3,4,[5,6,7]]
//pop()方法会返回被推出的元素
在不改变原数组的情况下,用pop方法获取数组最后元素。
let last = [...arr3].pop();
console.log(last); //4
console.log(arr3); //[1,2,3,4]
8、Array.shift() / Array.unshift()
这两个方法是在数组的开头移除/添加元素。
注意shiit()是移除,unshift()是添加
var arr = [1,2,3,4];
arr.unshift(0); //[0,1,2,3,4]
arr.shift(); //[1,2,3,4]
9、Array.concat()
此方法用于拼接两个或多个数组,不改变原数组,返回新数组。
array.concat(arrayX,arrayX,......,arrayX) 参数可以是具体的值,
也可以是数组对象。
let arr1 = [1,2,3,4];
let arr2 = [5,6,7,8];
let arr = arr1.concat(arr2);
console.log(arr1); //[1,2,3,4]
console.log(arr); //[1,2,3,4,5,6,7,8]
10、Array.toString()
此方法将数组转化为字符串。
let arr1 = [1,2,3,4];
let str = arr1.toString();
console.log(str) //1,2,3,4
拓展
对空白的处理:toString()会将空位视为undefined,而undefined和null会被处理成空字符串。
let arr1 = [1,,,4];
let str = arr1.toString();
console.log(str) //1,,,4
11、Array.join()
此方法是将数组元素拼接成字符串。
arrayObject.join(separator)
separator: 可选。指定要使用的分隔符。如果省略该参数,则使用逗号作为分隔符。
let arr1 = ['h','e','l','l','o'];
let str = arr1.join(""); //使用空字符串分隔,即直接拼接
console.log(str) //"hello"
拓展
对空白的处理:join()会将空位视为undefined,而undefined和null会被处理成空字符串。
let arr1 = [1,,,4];
let str = arr1.join();
console.log(str) //1,,,4
12、Array.splice()
这方法是可以实现增删操作的万能方法,改变原数组,返回删除的元素。
array.splice(index,howmany,item1,.....,itemX)
index 必需。该参数是开始插入和(或)删除的数组元素的下标。
howmany 可选。规定应该删除多少元素。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, ..., itemX 可选。要添加到数组的新元素
let arr1 = [1,2,3,4,5];
let arr = arr1.splice(2,2,4,5); //从下标2的元素开始删除2个元素(3,4),添加4,5
console.log(arr1) //[1, 2, 4, 5, 5]
console.log(arr) //[3,4]
13、Array.indexOf() / Array.lastIndexOf()
此方法可返回数组中某个指定的元素位置,若无则返回-1。
Array.indexOf()从前往后查找,返回第一个匹配的下标。
Array.lastIndexOf()从后往前查找,返回第一个匹配的下标。
let arr1 = [1,2,3,2,1];
let index1 = arr1.indexOf(2);
let index2 = arr1.lastIndexOf(2);
console.log(index1); //1
console.log(index2); //3
14、Array.includes()
此方法查找数组中是否存在某个元素,有则返回true,无则返回false。
array.includes(searchElement, fromIndex)
searchElement 必须。需要查找的元素值。
fromIndex 可选。从该索引处开始查找 searchElement。默认为0。
如果为负值,则按升序从 array.length + fromIndex 的索引开始搜索。
let arr1 = [1,2,3,2,1];
let index1 = arr1.includes(2);
let index2 = arr1.includes(5);
console.log(index1) // true
console.log(index2) // false
15、Array.reverse()
此方法用于反转数组,会改变原本数组。
let arr1 = [1,2,3,4,5];
arr1.reverse()
console.log(arr1); //[5,4,3,2,1]
常用字符串反转:
let str = 'hello';
str = str.split('').reverse().join('');
//str = [...str].reverse().join('');
console.log(str) // 'olleh'
16、Array.sort()
sort() 方法用于对数组的元素进行排序。
arrayObject.sort(sortby)
sortby 可选。规定排序顺序。必须是函数。默认从小到大排序。
let arr1 = [1,3,5,4,2];
let arr2 = [1,3,5,4,2];
arr1.sort()
console.log(arr1) //[1,2,3,4,5]
arr2.sort((a,b)=>{return a-b}) //从大到小
console.log(arr2) //[5, 4, 3, 2, 1]
17、Array.isArray()
此方法用于确定传递的值是否是一个 Array。
let arr1 = [1,3,5,4,2];
let result = Array.isArray(arr1)
console.log(result); // true
相当于
function myIsArray (obj) {
return obj instanceof Array;
}
18、Array.from()
此方法从一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
let arr1 = [1,2,3,4,5];
let str = 'hello';
let arr2 = Array.from(arr1);
let arr3 = Array.from(str);
console.log(arr2); //[1,2,3,4,5]
console.log(arr3); //['h','e','l','l','o']
19、Array.slice()
此方法可从已有的数组中返回选定的元素。
array.slice(start,end)
返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。不会改变原数组。
let arr1 = [1,2,3,4,5];
let arr2 = arr1.slice(2,4); //返回下标2-4的元素,不包括下标为4的元素
console.log(arr1); //[1,2,3,4,5]
console.log(arr2); //[3,4]
总结
数组的常用方法已经分两次总结完了,如有缺漏或错误的话,欢迎在评论区指出。