• JavaScript之数组常用的方法


    一、concat()

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

    var arr1 = [1,2,3];
    var arr2 = [4,5];
    var arr3 = arr2.concat(arr1);
    var arr4 = arr1.concat(arr2);
    console.log(arr3);//[4, 5, 1, 2, 3]
    console.log(arr4);//[1, 2, 3, 4, 5]

    二、join()

    join() 方法用于把数组中的所有元素放入一个字符串。元素是通过指定的分隔符进行分隔的,默认使用','号分割,不改变原数组。

    var arr1 = [1,2,3];
    var arr2=arr1.join();
    console.log(arr2);//1,2,3
    var arr3=arr1.join('*');
    console.log(arr3);//1*2*3

     三、push()

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

    var arr1 = [1,2,3];
    var arr2=arr1.push(5,'x');
    console.log(arr1);//[1, 2, 3, 4, "x"]
    console.log(arr2);//5

    四、pop()

    pop() 方法用于删除数组的最后一个元素并返回删除的元素,会改变原数组

    var a=[4,5,6,7,8,9,10]
    console.log(a.pop());//10
    console.log(a);//[4, 5, 6, 7, 8, 9]

    五、shift()

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

    var arr1 = [1,2,3];
    var arr2=arr1.shift();
    console.log(arr1);//[2, 3]
    console.log(arr2);//1

    六、unshift()

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

    var arr1 = [1,2,3];
    var arr2=arr1.unshift(9,10);
    console.log(arr1);//[9, 10, 1, 2, 3]
    console.log(arr2);//5

    七、slice()

    slice() 方法返回一个新的数组,包含从 start 到 end (不包括该元素)的 arrayObject 中的元素。返回选定的元素,该方法不会修改原数组。

    var arr1 = [1,2,3,4];
    var arr2=[4,5,6,7,8,9,10];
    var arr3 = arr1.slice(1,3);
    var arr4 = arr2.slice(2,6);
    console.log(arr1);//[1,2,3,4]
    console.log(arr2);//[4,5,6,7,8,9,10]
    console.log(arr3);//[2, 3]
    console.log(arr4);//[6, 7, 8, 9]

    八、splice()

    splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素。如果从 arrayObject 中删除了元素,则返回的是含有被删除的元素的数组。splice() 方法会直接对数组进行修改。

    var a=[4,5,6,7,8,9,10];
    console.log(a.splice(1,0,8));//[]
    console.log(a);//[4, 8, 5, 6, 7, 8, 9, 10]
    var b=[4,5,6,7,8,9,10];
    console.log(b.splice(2,5,8,9));//[6, 7, 8, 9, 10]
    console.log(b);//[4, 5, 8, 9]

    九、sort排序

    按照 Unicode code 位置排序,默认升序

    var fruit = ['cherries', 'apples', 'bananas'];
    fruit.sort(); // ['apples', 'bananas', 'cherries']
    var scores = [1, 10, 21, 2];
    scores.sort(); // [1, 10, 2, 21]

    十、reverse()

    reverse() 方法用于颠倒数组中元素的顺序。返回的是颠倒后的数组,会改变原数组。

    var a =['a','b','c','d'];
    var b=[6,4,7,8]
    console.log(a.reverse());//["d", "c", "b", "a"]
    console.log(b.reverse());//[8, 7, 4, 6]

    十一、indexOf 和 lastIndexOf

    indexOf 和 lastIndexOf 都接受两个参数:查找的值、查找起始位置,不存在,返回 -1 ;存在,返回位置。indexOf 是从前往后查找, lastIndexOf 是从后往前查找。

    //indexOf
    var a = [2, 9, 9];
    a.indexOf(2); // 0
    a.indexOf(7); // -1
     
    if (a.indexOf(7) === -1) {
     // element doesn't exist in array
    }
    //lastIndexOf
     
    var numbers = [2, 5, 9, 2];
    numbers.lastIndexOf(2);  // 3
    numbers.lastIndexOf(7);  // -1
    numbers.lastIndexOf(2, 3); // 3
    numbers.lastIndexOf(2, 2); // 0
    numbers.lastIndexOf(2, -2); // 0
    numbers.lastIndexOf(2, -1); // 3

     十二、some()&every()

    some方法是只要有一个数组成员的返回值为true,则返回true,否则false;
    every方法是需要每一个返回值为true,才能返回true,否则为false;

    const arr = [3,4,4,5,4,6,5,7];
    console.log( arr.some( function( item, index, array ){
        console.log( 'item=' + item + ',index='+index+',array='+array );
        return item > 3;
    }));
    //  item=3,index=0,array=3,4,4,5,4,6,5,7
    //   item=4,index=1,array=3,4,4,5,4,6,5,7
    //   true
    console.log( arr.every( function( item, index, array ){
        console.log( 'item=' + item + ',index='+index+',array='+array );
        return item > 3;
    }));
    // item=3,index=0,array=3,4,4,5,4,6,5,7
    //false

    十三、Array.isArray()

    用来判断是不是数据是不是一个数组,返回值为true或false。

    const arr = [3,4,4,5,4,6,5,7];
    console.log(Array.isArray(arr)) // true

    十四、find()

    返回符合传入测试(函数)条件的数组元素。

    const arr = [3,4,4,5,4,6,5,7];
    const a = test.find(item => item > 3);
    console.log(a); //4(find() 方法返回通过测试(函数内判断)的数组的第一个元素的值。)
    const b = test.find(item => item == 0);
    console.log(b); //undefined(如果没有符合条件的元素返回 undefined)

    十五、map()

    依次遍历数组成员,根据遍历结果返回一个新数组。(map方法同样适用于字符串,但是不能直接调用,需要通过函数的call方法,间接使用,或者先将字符串川转为数组,再使用)(不会改变原始数组)。

    const arr = [3,4,4,5,4,6,5,7];
    const a = arr.map(item => item*2) 
    console.log(a);// [6, 8, 8, 10, 8, 12, 10, 14]

    十六、foreach()

    跟map方法类似,遍历数组,区别是无返回值。

            var arr = [15, 8, 7, 8];
            var a =arr.forEach((item, index) => {
                console.log(index + ":" + item);
            }); 
            console.log(a); //undefined        

    十七、filter()

    一个过滤方法,参数是一个函数,所有的数组成员依次执行该函数,返回结果为 true 的成员组成一个新数组返回。(不会改变原始数组)。

    const arr = [3,4,4,5,4,6,5,7];
    const a = arr.filter(item => item % 3 > 1);
    console.log(a); // [5, 5]

    十八、reduce()

    依次处理数组的每个成员,最终累计成一个值。
    a:必填,累计变量;b:必填,当前变量;x: 可选,当前位置;y:可选,原数组。

     let arr = [58, 98, 56, 21, 54];
            //求和
            let result = arr.reduce(function(tem, item, index) {
                /*三个参数
                1.tem 代表中间数 
                2.item代表arr中的值
                3.index代表次数
                  */
                console.log(index + ':' + tem);
                console.log(index + ':' + item);
                return tem + item;
            })
            console.log(result);//287
            //求平均数
            let result1 = arr.reduce(function(tem, item, index) {
                //不是最后一次
                if (index != arr.length - 1) {
                    return tem + item;
                }
                //是最后一次
                else {
                    return (tem + item) / arr.length;
                }
            });
            console.log(result1);//57.4
  • 相关阅读:
    careercup-C和C++ 13.6
    C++中名字隐藏,名字查找优先于类型检查
    careercup-C和C++ 13.5
    careercup-C和C++ 13.4
    careercup-C和C++ 13.3
    careercup-C和C++ 13.2
    careercup-C和C++
    careercup-排序和查找 11.7
    RMAN Catalog创建、配置和管理
    Linux一块网卡添加多个IP地址
  • 原文地址:https://www.cnblogs.com/meteorll/p/13951206.html
Copyright © 2020-2023  润新知