Javascript数组常用方法汇总!
1.join()
作用:将数组中的所有元素转换为字符串
var arr1 = ['green', 'blue', 'pink'];
arr1.join(); // green,blue,pink
arr1.join('-'); // green-blue-pink
arr1.join('&'); // green&blue&pink
2.reverse()
作用:颠倒数组
特点:
- 改变原来的数组,返回一个新数组
var arr = ['pink', 'red', 'blue'];
arr.reverse();
console.log(arr); // ['blue', 'red', 'pink']
3.sort()
作用:数组排序
特点:
- 改变原来的数组,返回一个新数组
var arr = [2, 6, 9, 5, 8, 7];
arr.sort();
console.log(arr); // [2, 5, 6, 7, 8, 9]
// 数组排序(冒泡排序)
var arr1 = [13, 4, 77, 1, 7];
arr1.sort(function(a, b) {
// return a - b; 升序的顺序排列
return b - a; // 降序的顺序排列
});
console.log(arr1); // [1, 4, 7, 13, 77]
注意:如果数组包含undefined元素,它们会被排到数组的尾部
4.concat()
作用:数组添加元素
特点:
- 原数组不会发生改变,返回一个新数组
var arr = [2, 6, 9];
arr.concat(3,1); // [2, 6, 9, 3, 1]
arr; // [2, 6, 9]
5.slice()
作用:返回指定数组的一个片段或子数组
参数说明:
- 若只有一个参数X,则从X开始到结尾所有数组元素
- 若有两个参数X,Y,则从X位置开始到Y位置结束
- 若参数出现负数,比如:-1表示最后一个,以此类推
特点:
- 该方法不会改变原始数组,返回一个新数组
var a=[1, 2, 3, 4, 5];
a.slice(0,3); // [1, 2, 3]
a.slice(3); // [4, 5]
a.slice(1,-1); // [2, 3, 4]
a.slice(-3,-2); // [3]
6.splice()
作用:删除数组中的元素
参数说明:
- 若只有一个参数X,则表示删除从X位置开始到结尾所有元素
- 若有两个参数X,Y,则表示删除从X位置开始计数,要删除的个数Y的元素
- 若出现第三个或者三个以上的参数,则表示要插入数组中的元素,从第一个参数指定的位置开始插入
==特别注意==:
- 该方法返回值是删除元素形成的数组
- 原始数组会发生改变
// 一个参数
var arr =[1, 2, 3, 4, 5, 6, 7, 8];
console.log(arr.splice(3)); // [4, 5, 6, 7, 8]
console.log(arr); // [1, 2, 3]
// 两个参数
var arr =[1, 2, 3, 4, 5, 6, 7, 8];
console.log(arr.splice(2,5)); // [3, 4, 5, 6, 7]
console.log(arr); // [1, 2, 8]
// 多个参数
var arr =[1, 2, 3, 4, 5, 6, 7, 8];
console.log(arr.splice(3, 2,'a', 'b')); // [4, 5]
console.log(arr); // [1, 2, 3, "a", "b", 6, 7, 8]
7.push()和pop()
作用:push()在数组末尾添加一个元素或多个元素,pop()删除数组最后一个元素
注意:
- push()返回值是数组新的长度,原数组会发生改变
- pop()返回值是删除的那个元素,原数组会发生改变
// push()
var arr = [6, 7, 8, 9];
console.log(arr.push(2)); // 5
console.log(arr); // [6, 7, 8, 9, 2]
// pop()
var arr = [6, 7, 8, 9];
console.log(arr.pop()); // 9
console.log(arr); // [6, 7, 8,]
8.unshift()和shift()
作用:unshift()在数组头部添加一个元素或多个元素,shift()删除数组第一个元素
注意:
- unshift()返回值是数组新的长度,原数组会发生改变
- shift()返回值是删除的那个元素,原数组会发生改变
// unshift()
var arr = [5, 6, 7, 8];
console.log(arr.unshift(3)); // 5
console.log(arr); // [3, 5, 6, 7, 8,]
// shift()
var arr = [5, 6, 7, 8];
console.log(arr.shift()); // 5
console.log(arr); // [6, 7, 8,]
9.indexOf()
作用:从头至尾查找数组中的元素
返回值:返回找到的第一个元素的索引,若没有找到就返回-1
var arr = ['a', 'd', 'f', 'e'];
console.log(arr.indexOf('f')); // 2
console.log(arr.indexOf('h')); // -1