JavaScript数组函数的使用

 

     var a=[1,2,3,7,8,9];

     Object.defineProperty(a,"length",{writable:false});//让length属性只读,不可写
     a.length=0;
     console.log("a.length="+a.length);//长度为6

     //push()
     a.push("4","5");//尾部添加元素
     console.log("a.length="+a.length);//长度为8

     //shift()和unshift()
     a.unshift("6");//数组头部添加元素
     a.shift();//从头部开始删,只删1个

     //splice()
     a.splice(4);//返回[8,9],a变成[1,2,3,7]
     a.splice(1,2);//返回[2,3],a变成[1,7]
     a.splice(1,0,3,4);//返回[],a为[1,7,3,4],从第一个参数指定为位置插入

     //foreach()
     var sum = 0;
     a.forEach(function(x){//把数组每个元素传递给此函数
        sum+=x;
     });
     console.log("数组元素和为:"+sum);
     a.forEach(function(v,i,a){//数组元素,元素索引,数组本身
        a[i] = v+1;//元素值自加1
     });

     //join()
     a.join("-");//转化为字符串连接一起,返回生成字符串

     //split()
     var bb=aa.split("-");//Array.join()的逆操作,分割返回数组
     console.log(bb);

     //reverse()
     var cc=a.reverse();//将数组元素颠倒,返回逆序数组
     console.log(cc);

     //sort()
     a.sort();//数组排序,不带参数时数组元素以字母表顺序排序,区分大小写
     a.sort(function(a,b){//非字母表顺序排序,从小到大,反之则从大到小
        return a-b;//根据返回负数,0,正数
     });
     a.sort(function(b,t) {//不区分大小写排序
        var c = b.toLowerCase();
        var d = t.toLowerCase();
        if(cd) return 1;
        return 0;
     });

     //concat()
     a.concat(4,5);//创建并返回一个新数组,原调用数组不变
     a.concat([4,5]);
     a.concat(4,[5,[6,7]]);

     //slice()
     a.slice(0,2);//返回指定数组一个片段或子数组
     a.slice(1,-1);//负数则为倒数第几个

     //toString()
     var dd = a.toString();//将每个元素转为字符串,输出不包括方括号
     console.log(dd);//1,2,3,7,8,9

     //map()
     tt = a.map(function(x){//将返回值返回一个数组
         return x*x;
     });

     //filter()
     everyother = a.filter(function(x,i){//x为值,i为数组下标,返回数组的一个子集
        return i%2==0
        return x%2==0;
     });
     a = a.filter(function(x){/返回数组总是稠密,压缩空缺并删除undefined和null元素
        return x!==undefined && x!=null;
     });

     //every()和some()
     a.every(function(x){return x<10});//true:所有值小于10  ,逻辑判断,针对所有数组元素
     a.some(function(x){return x<10});//true:存在小于10  ,逻辑判断

     //reduce()和reduceRight()
     sum = a.reduce(function(x,y){return x+y},0);//数组求和,第一个参数是执行化简操作的函数,第二个(可选),传递初始值
     console.log(sum);
     var right =  objects.reduceRight(union);//union计算两个对象并集,reduceRight()按索引从高到低处理(从右到左)

     //indexOf()和lastIndexOf()
     a.indexOf(2);//返回找到的第一个元素索引,没有则返回-1,从左到右找,lastIndexOf则从尾到头找

你可能感兴趣的:(javaScript)