• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

数组

开发技术 开发技术 1周前 (08-01) 14次浏览

1、创建数组的两种方法

  第一种:

    var  arr1  =  [1, 2, 3, 4, 5];

    var  arr2  =  [3];

  第二种:

    var  arr3  =  new  Array(1, 2, 3, 4, 5); 

    var  arr4  =  new  Array(3);

  二者的区别:当只有一个数组成员的时候,第一种方法创建的数组arr2表示数组[3];第二种方法创建的数组arr4表示显示3个空成员的数组[undefined, undefined, undefined]

 

2、arr.length

  获取数组的长度

  var  arr  =  [1, 2, 3, 4];

  console.log(arr.length)  // 4 

 

3、arr.concat( )

  连接两个或更多的数组,并返回结果。不改变原数组

    第一种:

      var  arr  =  [1, 2, 3];

      var  arr1  =  arr.concat(4,5,6);

      console.log(arr1)  // [1, 2, 3, 4, 5, 6]

    第二种:

      var  arr  =  [1, 2, 3];

      var  arr1  =  [4, 5, 6];

      var  arr2  =  arr.concat(arr1);

      console.log(arr2)  // [1, 2, 3, 4, 5, 6]

    第三种:

      var  arr  =  [1, 2, 3];

      var  arr1  =  [4, 5, 6];

      var  arr2  =  [7, 8, 9];

      var  arr3  =  arr.concat(arr1, arr2);

      console.log(arr3)  // [1, 2, 3, 4, 5, 6, 7, 8, 9]

 

4、arr.join( )

  将数组的所以成员以指定的字符分隔成字符串;不改变原数组

  var  arr  =  [1, 2, 3, 4, 5];

 

  var  str1  =  arr.join( );  // 不填就是默认以逗号分隔

  console.log(str1)  // “1,2,3,4,5”

 

  var  str2  =  arr.join( ” );

  console.log(str2)  //”12345″

 

5、arr.push( )

  向数组的末尾添加一个或多个元素,并返回新数组的长度;改变原数组

  var  arr  =  [1, 2, 3, 4];

  var  arr1  =  arr.push(5, 6);

  console.log(arr)  // [1, 2, 3, 4, 5, 6]

  console.log(arr1)  // 6

 

6、arr.pop( ) 

  删除并返回数组的最后一个元素;改变原数组

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.pop( );

  console.log(arr)  // [1, 2, 3, 4]

  console.log(arr1)  // 5

 

7、arr.unshift( )

  向数组的开头添加一个或多个元素,并返回新数组的长度;改变原数组

  var  arr  =  [1, 2, 3, 4];

  var  arr1  =  arr.unshift(5, 6);

  console.log(arr)  // [5, 6, 1, 2, 3, 4]

  console.log(arr1)  // 6

 

8、arr.shift( )

  删除并返回数组的第一个元素;改变原数组

  var  arr  =  [1, 2, 3, 4];

  var  arr1  =  arr.shift( );

  console.log(arr)  // [2, 3, 4]

  console.log(arr1)  // 1

 

9、arr.splice( )

  删除数组元素,并添加新元素

  arr.splice(start, delCount, add1, add2, …)

  删除的开始位置,删除的元素个数,添加的元素

 

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.splice(3);

  console.log(arr)  // [1, 2, 3]

  console.log(arr1)  // [4, 5]

 

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.splice(2, 1);

  console.log(arr)  // [1, 2, 4, 5]

  console.log(arr1)  // [3]

 

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.splice(3, 0, 7, 8)

  console.log(arr)  // [1, 2, 3, 7, 8, 4, 5]

  console.log(arr1)  // [ ]5]

 

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.splice(3, 1, 7)

  console.log(arr)  // [1, 2, 3, 7, 5]

  console.log(arr1)  // [4]

 

10、arr.reverse( )

  颠倒数组中元素的顺序,并返回颠倒后的新数组;改变原数组

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.reverse( );

  console.log(arr)  // [5, 4, 3, 2, 1]

  console.log(arr1)  // [5, 4, 3, 2, 1]

 

11、arr.slice( )

  截取数组, 不改变原数组

 

  var  arr  =  [1, 2, 3, 4, 5];

 

  var  arr1  =  arr.slice( );

 

  console.log(arr1)  [1, 2, 3, 4, 5]

 

 

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.slice(3);

  console.log(arr)  // [1, 2, 3, 4, 5]

  console.log(arr1)  [4, 5]

  

  var  arr  =  [1, 2 , 3, 4, 5];

  var  arr1  =  arr.slice(1, 3);

  console.log(arr1)  // [2, 3]

 

12、arr.indexOf( )

  匹配元素是否在数组中,如果能匹配到,就返回该元素在数组中的索引;如果匹配不到,就返回-1

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.indexOf(4);

  console.log(arr1)  // 3

 

13、arr.sort( )

  如果调用该方法时没有使用参数,将按字母顺序对数组中的元素进行排序,说得更精确点,是按照字符编码的顺序进行排序改变原数组

  可以接受两个参数,a表示前面的数组元素,b表示后面的数组元素,比较a和b的大小,如果是负数或者0不改变二者位置,如果是正数,将a位置的元素和b位置的元素对调位置

 

  var arr = [1, ‘abc’, 5, ‘a’, 3, 2, ‘c’, 6, ‘b’,5, ];

  var arr1 = arr.sort();

  console.log(arr)  // [1, 2, 3, 5, 5, 6, “a”, “abc”, “b”, “c”]

  console.log(arr1)  // [1, 2, 3, 5, 5, 6, “a”, “abc”, “b”, “c”]

 

  var arr = [1, 5, 3, 2, 6, 5 ];

  var arr1 = arr.sort((a, b) => {

    return a – b;

  });

  console.log(arr)  // [1, 2, 3, 5, 5, 6]

 

14、arr.toString( )

  该方法与没有参数的join方法返回的字符串相同

  var  arr  =  [1, 2, 3, 4, 5];

  var  arr1  =  arr.toString( );

  console.log(arr)  //[1, 2, 3, 4, 5]

  console.log(arr1)  // “1,2,3,4,5”

 

15、Array.isArray( )

  判断传的参数是否是数组类型,是数组类型返回true,否则返回false

  var  arr  =  [1, 2, 3, 4];

  var  arr1  =  Array.isArray(arr);

  console.log(arr1)  // true

 

16、arr.forEach( )

  遍历数组,和for循环差不多,区别是使用return或break都不能中断forEach的循环

  let  arr  =  [1, 2, 3, 4, 5, 6];

  let obj  =  {a:1, b:2};

  forEach方法如果不传第二个参数,无论回调函数是es5写法还是es6写法,回调函数中的this都是window

 

  arr.forEach(function(item, index){

 

    console.log(this)  // {a:1, b:2} 

  }, obj)

 

  arr.forEach((item, index)  =>  {

    console.log(this)  // window

  }, obj)

 

17、arr.map( )

  返回一个新数组,数组中的成员是arr.map方法中的回调函数循环时return的值

  var  arr  =  [1, 2, 3, 4, 5, 6];

  var  arr1  =  arr.map((item, index)  =>  {

    return item + 1;

  });

  console.log(arr1)  // [2, 3, 4, 5, 6, 7]

 

18、arr.filter( )

 

  返回一个新数组,数组中的成员是arr.filter方法中的回调函数循环时return的值是true的item的值

 

  var  arr  =  [1, 2, 3, 4, 5, 6];

 

  var  arr1  =  arr.filter((item, index)  =>  {

 

    return item  >  3;

 

  });

 

  console.log(arr1)  // [4, 5, 6]

 

 

19、arr.some( )

  检测数组中的值是否有满足判断条件的,如果有返回true,没有返回false

  var  arr  =  [1, 2, 3, 4, 5, 6];

  var  arr1  =  arr.some((item, index)  =>  {

    return item  >  3;

  });

  console.log(arr1)  // true

 

20、arr.every( )

 

  检测数组中的值是否全部满足判断条件,如果全部满足返回true,否则返回false

 

  var  arr  =  [1, 2, 3, 4, 5, 6];

 

  var  arr1  =  arr.every((item, index)  =>  {

 

    return item  >  3;

 

  });

 

  console.log(arr1)  // false

 

 

21、arr.find( )

 

  返回数组中第一个满足判断条件的成员,如果都不满足返回undefined

 

  var  arr  =  [1, 2, 3, 4, 5, 6];

 

  var  arr1  =  arr.find((item, index)  =>  {

 

    return item  >  3;

 

  });

 

  console.log(arr1)  // 4

 

 

22、arr.flat( )

 

  不传参数,只能将二维数组转成一维数组;加Infinity参数可以将多维数组转换成一维数组

 

  var  arr  =  [1, 2, [4, 5]];

 

  var  arr1  =  arr.flat( );

 

  console.log(arr1)  // [1, 2, 4, 5]

  

  var  arr  =  [1, 2, [3, 4, [5]]];

  var  arr1  =  arr.flat(Infinity)

  console.log(arr1)  // [1, 2, 3, 4, 5]

 

23、arr.fill( )

  ES6:一个固定值替换数组的元素。array.fill(value, start, end)

  let arr1 = [1, 2, 3, 4, 56, 7, 7, 8, 9];

  arr1.fill(4, 2, 5);

  console.log(arr1) // [1, 2, 4, 4, 4, 7, 7, 8, 9]

 

 

  let arr2 = [1, 2, 3, 4, 56, 7, 7, 8, 9];

  arr2.fill(4);

  console.log(arr2) // [4, 4, 4, 4, 4, 4, 4, 4, 4]

 

24、arr.lastIndexOf( )

  查找参数在数组中最后一次出现的索引有就返回该索引,没有就返回-1

  var  arr  =  [1, 2, 3, 2, 4];

  var  arr1  =  arr.lastIndexOf(2);

  console.log(arr1)  // 3

 

25、arr.reduce( )

  该方法有两个参数,第一个参数是回调函数,第二个参数是可选参数,如果写第二个参数,第二个参数就是回调函数的第一个参数,回调函数的第二个参数表示数组成员;

  如果不写第二个参数,回调函数第一个参数表示数组的第一个成员,回调函数的第二个参数表示数组的

 

  var arr = [1, 2, 3, 4, 5, 6];
  var arr1 = arr.reduce((pre,cur,index) => {
    console.log(pre,cur,index)
    return pre + cur
  });
  console.log(arr1)  // 21

 

  var arr = [1, 2, 3, 4, 5, 6];
  var arr1 = arr.reduce((pre,cur,index) => {
    console.log(pre,cur,index)
    return pre.concat(cur);
  }, [ ]);
  console.log(arr1)  // [1, 2, 3, 4, 5, 6]

 

26、arr.reduceRight( )

  和reduce用法相同,只是此方法是数组从后向前遍历

  var arr = [1, 2, 3, 4, 5, 6];
  var arr1 = arr.reduceRight((pre,cur,index) => {
    console.log(pre,cur,index)
    return pre.concat(cur);
  }, [ ]);
  console.log(arr1)  // [6, 5, 4, 3, 2, 1]

 

27、arr.includes( )

  查找数组中是否有某个元素,有就返回true,否则返回false

  var arr = [1, 2, 3, 4, 5, 6];

  var arr1 = arr.includes(3)

  console.log(arr1)  // true


程序员灯塔 , 版权所有
转载请注明原文链接:https://www.wangt.cc/2020/08/%e6%95%b0%e7%bb%84/
喜欢 (0)