zoukankan      html  css  js  c++  java
  • js数组操作记录

    一 .splice()

      方法向/从数组中添加/删除项目,然后返回被删除的项目。

      arrayObject.splice(index,howmany,item1,.....,itemX)

    参数 描述
    index 必需。整数,规定添加/删除项目的位置,使用负数可从数组结尾处规定位置。
    howmany 必需。要删除的项目数量。如果设置为 0,则不会删除项目。
    item1, ..., itemX 可选。向数组添加的新项目。

     

     

     

     

     

     

     

    事例:

    let a=[1,2,3];
    a.splice(1,1,666);
    console.log(a);//[1,666,3]

    二 .slice()

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

      arrayObject.slice(start1,end2)

    参数  描述
     start1  必需。规定从何处开始选取。如果是负数,那么它规定从数组尾部开始算起的位置。也就是说,-1 指最后一个元素,-2 指倒数第二个元素,以此类推。
     end2  可选。规定从何处结束选取。该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。

     

     

     

     

      

    事例:

    let a=[1,2,3,4,5];
    console.log(a.slice(1,4)); //[2,3,4]     

    三 .concat()

      方法用于连接两个或多个数组。

      该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。

      返回一个新的数组。该数组是通过把所有 arrayX 参数添加到 arrayObject 中生成的。如果要进行 concat() 操作的参数是数组,那么添加的是数组中的元素,而不是数组。

      arrayObject.concat(X,X,......,X)

    参数 描述
    X 必需。该参数可以是具体的值,也可以是数组对象。可以是任意多个。

     

    事例:

      let a=[1,2,3];
      let b=[4,5,6];
      console.log(a.concat(b));//[1,2,3,4,5,6]
      console.log(a.concat(4,5,6));//[1,2,3,4,5,6]

    四 .sort()

      方法用于对数组的元素进行排序。

      arrayObject.sort(sortby)

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

    sortby函数应该具有两个参数 a 和 b,其返回值如下:

    • 若 a 小于 b,在排序后的数组中 a 应该出现在 b 之前,则返回一个小于 0 的值。
    • 若 a 等于 b,则返回 0。
    • 若 a 大于 b,则返回一个大于 0 的值。

     事例:

      let a = [2, 4, 1, 3];

      console.log(a.sort(function(a, b) {

        return a-b;
      })); //[1,2,3,4]

    五 . for of

      1 .es6里的新功能 用来遍历数组 参考 :Iterator和for...of循环

      2 .for in 与 for of的区别:

        简单说,for in是遍历键名,for of是遍历键值。

    let arr = ["a","b"];
    for (a in arr) {
        console.log(a);//1,2
    }
    
    for (a of arr) {
        console.log(a);//a,b
    }

        由于for of的这个特性,他还可以实现对iterator对象的遍历,而for in就是简单的遍历了。

    六 . reverse()

      用于颠倒数组中元素的顺序。会改变原来的数组,而不会创建新的数组。

    var a = [2, 4, 1, 3];
    console.log(a.reverse());//[3,1,4,2]

      方法会返回颠倒后的数组。

    七 . indexof()

        array.indexOf(searchElement[, fromIndex])

      返回整数索引值,如果没有匹配(===),返回-1fromIndex可选,表示从这个位置开始搜索,

      若缺省或格式不合要求,使用默认值0。

    var a="123";
    console.log(a.indexOf(2));//1
    var ab=['1','2','3'];
    console.log(b.indexOf('2'));//-1

    八 . filter()   

     array.filter(function( currentValue , index , arr ) , thisValue)

      filter方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。filter不会对空数组进行检测,且不会改变原始数组。

      

    参数 描述
    function( currentValue , index , arr )

    数组中的每个元素都会执行这个函数。

    参数 描述
    currentValue 必须,当前元素的值
    index 可选,当前元素的索引值。
    arr 可选,当前元素属于的数组对象。
    thisValue 可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
    如果省略了 thisValue ,"this" 的值为 "undefined"

     

              var arr2 = [{
                        "name": "apple",
                        "count": 2
                    },
                    {
                        "name": "orange",
                        "count": 5
                    },
                    {
                        "name": "pear",
                        "count": 3
                    },
                    {
                        "name": "orange",
                        "count": 16
                    },
                ];
    
                var newArr = arr2.filter(function(item, idx, arr) {
                    console.log(item, idx, arr);
                    return item.name == 'orange';
                });
    
                console.log(newArr);
    
                let spread = [12, 5, 8, 8, 130, 44, 130];
                
                spread = spread.filter(function(item, idx, arr) {
                    return arr.indexOf(item) === idx;
                });
                
                console.log('数组去重结果', spread);

    九 .reduce()

    array.reduce(function( result, currentValue ,currentIndex, arr ),initObj)

      reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。

    参数 描述
    function(result, currentValue, currentIndex,arr)
    参数 描述
    result 函数每次传递返回的对象
    currentValue 当前循环的指
    currentIndex 当先循环的下标
    arr 操作的数组对象
    initObj 可选,第一次循环传入的初始值
    var arr2 = [1,2,3,4,5];
    
    var total = arr2.reduce(function(total, currentValue, currentIndex, arr) {
        total[currentIndex]=currentValue;
        return total;
    },[]);
    console.log(total);//1,2,3,4,5

     注意:在不传initialObj参数的情况下,reduuce的回调函数是从第二个元素( [ 1 ] )开始执行的,所以第一次执行函数里的result参数是( [ 0 ] ) !

    十 .pop()

      用于删除并返回数组的最后一个元素。

    var arr = [1,2,3]
    console.log(arr.pop());//3

    十一 .最后

      今天就了做一下js数组方面的基础知识的收集。用于经常为自己知识的巩固。

  • 相关阅读:
    deep_learning_Function_numpy_random.normal()
    deep_learning_Function_np.newaxis参数理解
    deep_learning_Function_numpy.linspace()
    deep_learning_Function_tf.identity()
    deep_learning_Function_tf.control_dependencies([])
    deep_learning_Function_tf.train.ExponentialMovingAverage()滑动平均
    deep_learning_Function_bath_normalization()
    deep_learning_PCA主成分分析
    deep_learning_Function_numpy_argmax()函数
    deep_learning_Function_matpotlib_scatter()函数
  • 原文地址:https://www.cnblogs.com/zhuxiaoweb/p/7647054.html
Copyright © 2011-2022 走看看