js中数组的操作

1、length 

计算数组的长度

var arr = ["aaa","bbb"];
alert(arr.length);

2、索引

通过索引获取对应值,同时也可以改变索引对应的值

var arr = ["aaa","bbb"];
alert(arr[0]);//弹出aaa
arr[0] = "111";
alert(arr[0]);//弹出111

3、indexOf

返回指定元素的位置,若元素不存在返回-1

var arr = ["aaa","bbb",111];
alert(arr.indexOf("aaa");//弹出0
alert(arr.indexOf("111");//弹出-1,"111"与111是不同的元素

4、slice

接受一个或两个参数,参数对应的是要返回项的起始位置和结束位置,若只有一个参数,该方法返回从参数指定位置到数组结尾的所有项,如果有两个参数则返回起始位置到结束位置之间的项但不包括结束位置项,返回的结果是一个新的数组,原数组不变

var arr = ['A', 'B', 'C', 'D', 'E', 'F', 'G'];
alert(arr.slice(0, 3)); // 从索引0开始,到索引3结束,但不包括索引3: ['A', 'B', 'C']
alert(arr.slice(3)); // 从索引3开始到结束: ['D', 'E', 'F', 'G']

5、push

向数组末尾添加若干元素,返回添加元素后数组的长度

var arr = [1,2];
alert(arr.push('a','b'));//返回数组的长度2

6、pop

删除数组末尾最后一个元素,返回被删除的元素,若数组为空则返回undefined

var arr = [1,2,3];
alert(arr.pop());//返回被删除的元素3
var arr1 = [];
alert(arr1.pop());//返回undefined

7、unshift

在数组头部添加若干元素,返回添加元素后数组的长度

var arr = [1,2,3];
alert(arr.unshift("a","b"));//返回数组的长度5

8、shift

删除数组头部的第一个元素,并返回被删除的元素,若数组为空则返回undefined

var arr = [1,2,3];
alert(arr.shift());//返回头部被删除的项1

9、sort

对数组进行排序,返回排序以后的数组,默认把所有元素转化为字符之后再进行排序,排序以后会改变原数组

var arr = ["3","2",11];
alert(arr.sort());//返回11,2,3

可以通过一个自定义的比较函数来进行排序,比较函数接收两个参数,如果第一个参数应该位于第二个参数之前应该返回负数,如果第一个参数应该位于第二个参数之后应该返回正数,若相等返回0,排序之后会改变原数组

function compare(val1,val2){
    return val1-val2;
}
var arr = [3,2,9,4];
alert(arr.sort(compare));//返回2,3,4,9

10、reverse

对数组中的数据进行反转,返回反转后的数组

var arr = ["333","222"];
alert(arr.reverse());

11、splice

从指定位置删除若干元素,然后再从该位置添加若干元素,结果返回被删除的元素,第一个参数表示起始删除的位置,第二个参数表示要删除元素的个数,之后的元素表示要添加的元素

var arr = ["a","b","c"];
alert(arr.splice(1,2,"d","e"));//从位置1开始删除2个元素,在1位置添加"d","e"两个元素,返回"b","c"
alert(arr);//arr数组变为a,d,e
alert(arr.splice(0,3));//从位置0开始,删除3个元素,返回"a","d","e"
alert(arr);//arr数组为空

11、concat

把当前数组与另一个数组连接起来,并返回新的元素,原来的数组不被改变,concat可以接收任意个元素和数组,并把数组拆开放入新的数组中

var arr = ["a","b","c"];
alert(arr.concat([1,2,3]));//数组arr不变,返回["a","b","c",1,2,3]
alert(arr.concat([1,2,[3,4]]));//返回["a","b","c",1,2,3,4]

12、join  

将数组中的每一个元素用指定的字符串连接起来,返回字符串

var arr = ["a","b","c"];
alert(arr.join(","));//返回字符串'a,b,c'

 13、map

对数组中的每一项运行函数,返回函数运行结果组成的数组,函数的参数是一个函数,而该函数接收三个参数:数组当前值,数组索引、数组

var arr = [1,2,3,-1];
alert(arr.map(function(x) {
      return x * x;
}
));//返回1,4,9,1

 14、reduce

从数组的第一项开始,逐个遍历到最后,函数接受两个参数,一个是在数组上调用的函数和归并的初始值(可选),而调用数组的函数接受四个参数:前一个值、当前值、当前值索引、当前数组,第一次调用时,前一个值是数组第一项,当前值是数组第二项

var arr = [1,2,3,-1];
var result = arr.reduce(function(prev,cur,index,array){
     return prev+cur
})
alert(result);//返回5

 15、filter

对数组中的每一项运行函数,返回该函数返回true的元素组成的数组

var arr = [1,-3,2,-4,-6];
var newArr = arr.filter(function(x){
    if(x>=0){
        return true;
    }else{
        return false;
    }
})
alert(newArr)//返回1,2

 16、toString

该方法返回由数组中每个值的字符串以逗号分隔而拼接的字符串,数组的每一项调用的是toString

var arr = [1,2];
alert(arr.toString());//返回1,2

17、valueOf

调用该方法返回的依旧是数组

var arr = [1,2];
alert(arr.valueOf());//alert返回的都是字符串,故返回1,2,而arr.valueOf()是数组
alert(arr.valueOf() instanceof Array);//返回true

18、toLocaleString

该方法返回一个数组值以逗号分隔的字符串,与toString不同的是数组的每一项调用的是toLocaleString

var arr = [1,2];
alert(arr.toLocaleString());//返回1,2
原文地址:https://www.cnblogs.com/lhyhappy365/p/6068293.html