JavaScript数组常用的方法

1. 数组的创建

js中一般有两种方式创建数组;


        //1. 数组的创建
        var arr = [1,2,1,3,6,8,7];
        //第一种直接用方括号括起来,里面元素用逗号隔开。
        var arr_sec = new Array(1,2,3);
        //第二种则是直接用Array 对象创建。

2.方法

(1)push 方法

        arr.push(num);
        //arr.push(num) 在数组尾部添加一组新的数据

此方法会改变原数组,而且它返回的值是被改变后数组的长度

(2)pop 方法

        arr.pop();
        //arr.pop() 在数组尾部删除一组数据

此方法会改变原数组,而且它返回的值是被删除的值

(3)unshift 方法

        arr.unshift(num);
        //arr.unshift(num) 在数组头部添加一组新数据

此方法会改变原数组,而且它返回的值是被改变后数组的长度

(4)shift 方法

        arr.shift();
        //arr.shift() 在数组头部删除一组数据

此方法会改变原数组,而且它返回的值是被删除的值

(5)reverse 方法

        //翻转数组reverse()
        var arrRe = arr.reverse();

此方法会改变原数组,而且它返回的是一个新数组

(6)sort 方法

        //数组排序sort()
        arrSo = arr.sort(function(a,b) {
        return a - b; //升序
        // return b - a; //降序
        // return Math.random(a) - 0.5; //随机数组
        });

此方法会改变原数组,而且它返回的是一个新数组,这里的随机还不是足够优化的随机,假如要随机优化建议使用洗牌算法

(7)concat 方法

        // 连接两个数组 concat() 此方法并不会改变原数组
        arrCa = arr.concat(arr_sec);

此方法不会改变原数组,而且它返回的是一个新数组

(8)join 方法

        //转换字符串 join() 可以自定义分隔符 此方法并不会改变原数组
        arrJo = arr.join('|');

此方法不会改变原数组,而且它返回的是一个新数组

(9)slice 方法

        //截取数组并返回slice() 内跟两个参数,从几位开始截取,截取至几位
        arrSl = arr.slice(2,4);

此方法不会改变原数组,而且它返回的被截取的参数

(10)splice 方法

        // splice() 插入、删除、修改数组
        // 第一参数表示起始位,第二参数表示要删除的项(数目),第三位表示在起始位(这里是10)插入元素
        var itemArr = arr.splice(10,3,'我是插入的第一个元素','我是插入的第二个元素');

此方法会变原数组,而且它返回的被截取的参数

(11)forEach 方法

        var sum = 0;
        //forEach()迭代(遍历)
        arr.forEach(function(value,index,array) {
            // console.log('每个数组元素' + value);
            // console.log('每个数组元素的索引号' + index);
            // console.log('数组本身' + array);
            return sum += value;
        });
        console.log(sum);
        console.log(arr);
        //value:数组里面每个元素; index:每个元素的索引号; array:数组的本身

(12)filter 方法

        // filter 筛选数组
        var arr = [5,11,6,7,9,12,19,17];
        var newArray = arr.filter(function(value, index, array) {
            //1. 如果要筛选某组数据,只要return与之相对应的条件即可
            // return value >= 10;
            // return value %2 === 0;
            // return index %2 === 0;
            return index %2 === 1;
        });
        console.log(newArray);
         //value:数组里面每个元素; index:每个元素的索引号; array:数组的本身

(13)some 方法

        // some 查找数组中是否有满足条件的元素
        var arr = [1,2,3];
        var arrS = arr.some(function(value,index,array) {
            return value > 2;
        });
        console.log(typeof arrS);
        //value:数组里面每个元素; index:每个元素的索引号; array:数组的本身

此方法方法返回的是布尔值

(14)every 方法

        var arr = [1, 3, 5, 8]
        // every() 方法主要用于查询数组中是否有不满足条件的元素,同some不同只要有一个不满足则返回 
        //false
        arr.every((value, index, array) => {
            return value === 9;
        });
        //value:数组里面每个元素; index:每个元素的索引号; array:数组的本身

此方法方法返回的是布尔值

(15)reduce 方法

        var arr = [1, 2, 31, 22, 1, 2, 2, 112];
        // reduce() 常用于前一个值与后一个值的累加,它有四个参数,分别为累加值,当前值,下标,和数 
        //组本身
        var sum = arr.reduce(function (prev, now, index, self) {
            return prev + now;
        }, 0);

此方法不会改变原数组,返回的是一个新值。

(16)map 方法

        var arr = [1, 16, 4, 25, 9];
        // map() 常用于遍历数组内数据计算,内容拼接等,它返回的是一个新数组,
        var getSqrt = arr.map(function (value, index, self) {
            return Math.sqrt(value);
        });
        //它有三个参数,分别为数组里每个元素,数组下标,和数组本身

此方法不会改变原数组,返回的是一个新数组。

(17)Array.from 方法

        //Array.from() 将伪数组转换成数组
        let arr = {
            '0':1,
            '1':2,
            '2':3,
            length: 3
        };
        var ary = Array.from(arr,item => item * 2);

此方法并不会改变原伪数组,返回的是一个新数组。

(18)find 方法

        //find() 方法 用于找出第一个符合条件的数组成员,没有找到则返回undefined
        let ary = [{
            id: 1,
            name: 'jj',
        },{
            id: 2,
            name: 'dd',
        }];
        let target = ary.find((item,index) => item.id == 2);

此方法不会改变原数组,返回的是一个新值。

(19)findIndex 方法

        //findIndex()方法,用于找出第一个符合条件的数组成员的位置,如果没有找到则返回-1
        let arr = [1, 2, 3, 4, 5];
        let arr1 = arr.findIndex(value => value > 3);
        console.log(arr1);

此方法不会改变原数组,返回的是一个Number。

(20)includes 方法

        //Includes()方法,表示某个数组是否包含给定的值,返回布尔值
        let arr = [1, 2, 3, 4, 5];
       console.log(arr.includes(3)); //ture
       console.log(arr.includes(6)); //flase

此方法不会改变原数组,返回的是一个布尔值。

3.总结

学js有一段时间了,数组是js的重点,目前也就掌握了这一些方法,希望能帮助到有需求的人,假如哪里写的不对的地方,欢迎大家指出来~~

你可能感兴趣的:(javascript,开发语言,ecmascript,array)