JavaScript中数组常用方法总结

最后更新于:2018-03-24 14:02:54

数组中常用方法总结:

1.concat() 方法用于连接两个或多个数组。该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

语法:arrayObject.concat(arrayX,arrayX,......,arrayX)

实例:

let ary1 = [2, 6, 19];
   let ary2 = [1, 2, 5, 9, 17];
let ary = ary1.concat(ary2);
   console.log(ary);// [2, 6, 19, 1, 2, 5, 9, 17]

2.join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的。

语法:arrayObject.join(separator)

separator参数是要指定分隔符,可以选,默认是“,”进行分割。

实例:

let ary1 = [2, 6, 19];
   console.log(ary1.join("."));//2.6.19
   console.log(ary1.join());//2,6,19

3.reverse() 方法用于颠倒数组中元素的顺序。

语法:arrayObject.reverse()

注释:该方法会改变原来的数组,而不会创建新的数组。

实例:

let ary1 = [2, 6, 19];
   console.log(ary1.reverse());// [19, 6, 2]

4.toString() 方法可把数组转换为字符串,并返回结果。

语法:arrayObject.toString()

实例:

let ary2 = [1, 2, 5, 9, 17];
console.log(ary2.toString());//1,2,5,9,17

5.sort()对数组的元素进行排序。(10以内

语法:arrayObject.sort(sortby)

参数sortby可选。规定排序顺序。必须是函数。

对数组的引用。数组在原数组上进行排序,会改变原数组。

实例:

let ary1 = ["w","a","n","z","b"];
   console.log(ary1.sort());//["a", "b", "n", "w", "z"]
let ary2 = [3, 1, 2, 5, 9,16,1000];
function sortNumber(a, b) {
   return b - a;
};
   console.log(ary2.sort(sortNumber));//[1000, 16, 9, 5, 3, 2, 1]
   function sortNumber(a, b) {
    return a - b;
   };
   console.log(ary2.sort(sortNumber));//[1, 2, 3, 5, 9, 16, 1000]

6.push() 方法可向数组的末尾添加一个或多个元素,并返回新的长度。

语法:arrayObject.push(newelement1,newelement2,....,newelementX);

参数newelement1必须,其余可选

原数组改变

实例:

let ary2 = [3, 1, 2, 5, 9,16,1000];
   console.log(ary2.push('6'));//8
   console.log(ary2);//[3, 1, 2, 5, 9, 16, 1000, "6"]

7.unshift() 方法可向数组的开头添加一个或更多元素,并返回新的长度。

语法:arrayObject.unshift(newelement1,newelement2,....,newelementX)

参数newelement1必须,其余可选

原数组改变

实例:

let ary2 = [3, 1, 2, 5, 9,16,1000];
   console.log(ary2.unshift('6'));//8
   console.log(ary2);//["6", 3, 1, 2, 5, 9, 16, 1000]

8.pop() 方法用于删除并返回数组被删除的元素。

语法:arrayObject.pop()

原数组改变

实例:

let ary2 = [3, 1, 2, 5, 9,16,1000];
   console.log(ary2.pop());//1000
   console.log(ary2);//[3, 1, 2, 5, 9, 16]

9.shift() 方法用于把数组的第一个元素从其中删除,并返回被删除元素的值。

语法:arrayObject.shift()

原数组改变

let ary2 = [3, 1, 2, 5, 9,16,1000];
   console.log(ary2.shift());//3
   console.log(ary2);// [1, 2, 5, 9, 16, 1000]

10.splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。(如果有的话

语法:arrayObject.splice(index,howmany,item1,.....,itemX)

index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。

howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。

item1, ..., itemX可选。向数组添加的新项目

原数组改变

实例:

let ary2 = [3, 1, 2, 5, 9, 16, 1000];
//从索引2开始删除3项
console.log(ary2.splice(2, 3));//[2, 5, 9]
   //从索引4开始删除到最后
console.log(ary2.splice(4));//[9, 16, 1000]
   //返回一个空数组
console.log(ary2.splice());//[]
//克隆
console.log(ary2.splice(0));//[3, 1, 2, 5, 9, 16, 1000]
//从索引2开始删除1项,并且用3代替
console.log(ary2.splice(2, 1, 3));//[2]
console.log(ary2);//[3, 1, 3, 5, 9, 16, 1000]
//在索引2前面增加一项
console.log(ary2.splice(2, 0, 3));//3
console.log(ary2);//[3, 1, 3, 2, 5, 9, 16, 1000]

11.slice() 方法可从已有的数组中返回选定的元素。

语法:arrayObject.slice(start,end)

start必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。

end可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

原数组不改变

实例:

let ary2 = [3, 1, 2, 5, 9, 16, 1000];
//从索引2开始截取到索引为4,不包含4
console.log(ary2.slice(2, 4));//[2,5]
//从索引4开始截取到最后
console.log(ary2.slice(4));//[9, 16, 1000]
//克隆
console.log(ary2.slice());//[3, 1, 2, 5, 9, 16, 1000];
//克隆
console.log(ary2.slice(0));//[3, 1, 2, 5, 9, 16, 1000]

12.indexOf() 和lastIndexOf();这两个方法都是返回元素在数组中的索引,indexOf是返回第一次出现的索引,lastIndexOf是返回元素最后一次在数组中出现的索引,如果没有找到,则返回-1.

用法:Array.indexOf(item)

实例:

let ary = [2,6,8,9,1,5,1,6,1];
console.log(ary.indexOf(1));//4
console.log(ary.lastIndexOf(1));//8
console.log(ary.lastIndexOf(10));//-1

13.valueOf():返回数组本身

用法:Array.valueOf()

实例:

let ary = [1, 2, 3];
ary.valueOf() // [1, 2, 3]

14.map()方法创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

语法:

let array = ary.map(function callback(currentValue, index, array) {
// Return element for new_array
}[, thisArg]);

参数:

callback生成新数组元素的函数,使用三个参数:

  1. currentValue:callback 的第一个参数,数组中正在处理的当前元素。
  2. index:callback :的第二个参数,数组中正在处理的当前元素的索引。
  3. array:callback 的第三个参数,map 方法被调用的数组。
  4. thisArg:可选的。执行 callback 函数时 使用的this 值。

实例:

var numbers = [1, 4, 9];
var doubles = numbers.map(function(num) {
   return num + 1;
});
// doubles is now [2, 5, 10]
// numbers is still [1, 4, 9]

15.forEach()方法为每个数组元素执行一次提供的函数。与map方法非常相似,但是forEach()方法没有返回值。(返回值是undefined).

语法:

arr .forEach(function callback(currentValue,index,array){

} [,thisArg ]);

callback:执行每个元素的函数,取三个参数:

  1. currentValue:在数组中正在处理的当前元素的值。
  2. index:在数组中正在处理的当前元素的索引。
  3. array:正在应用forEach()方法的数组 。
  4. thisArg 可选的,执行时使用的值this(即参考Object)callback。

实例:

var a = [1, 2, 'c'];
a.forEach(function(element) {
   console.log(element*2);
});
// 2
// 4
// NaN

16.filter()方法筛选数组的元素,返回值是符合筛选条件元素组成的一个新数组。

语法:var newArray = arr .filter(callback

实例:

var number = [5,6,80,12,15,22];
var num = number.filter(function(number){
   return number > 15;
});
console.log(num);
// 80   22

参考资料:
w3c JavaScript Array 对象