数组的方法

Posted zxh-null

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组的方法相关的知识,希望对你有一定的参考价值。

8.slice: 方法返回一个新的数组对象,这一对象是一个由 begin 和 end 决定的原数组的浅拷贝(包括 begin,不包括end)。同样不会对原数组改变

  let arr12 = [24, 3, 6, 8, 7, 9];
      //省略第二个参数end  会一直拷贝到数组结尾处的元素
      let res12 = arr12.slice(3);
      console.log(res12); // [8,7,9]

9. splice(start[, deleteCount[, item1[, item2[, ...]]]]): 这个方法之前一直和slice分不清楚,其实它们有个最大的不同点就是,这个方法是改变原数组的,不会重新开辟一个空间去改变数组长度。

     参数 start? 指定修改的开始位置(从0计数)。如果超出了数组的长度,则从数组末尾开始添加内容;如果是负值,则表示从数组末位开始的第几位(从-1计数,这意味着-n是倒数第n个元素并且等
价于array.length-n);如果负数的绝对值大于数组的长度,则表示开始位置为第0位。

deleteCount 可选 整数,表示要移除的数组元素的个数。

item1, item2, ... 可选  要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。

let arr13 = [1, 3, 5, 7, 9, 7, 2, 6, 57, 7];
      //增  第一个参数代表位置索引
      arr13.splice(1, 0, "2"); // [1, "2", 3, 5, 7, 9, 7, 2, 6, 57, 7]
      //删  第二个参数表示删除元素的个数,当省略时表示从索引处到数组结尾处全删
      arr13.splice(2); //[1,"2"]
      //
      arr13.splice(0, 1, "哈哈");
      console.log(arr13); // ["哈哈",  "2"]
//例题熟悉一下这两个方法: 从第 2 位开始删除 0 个元素,插入“drum”
      var myFish = ["angel", "clown", "mandarin", "sturgeon"];
      myFish.splice(1, 0, "drum");
      console.log(myFish); //["angel", "drum", "clown", "mandarin", "sturgeon"]
      //从第 3 位开始删除 1 个元素
      var myFish = ["angel", "clown", "drum", "mandarin", "sturgeon"];
      myFish.splice(3, 1);
      console.log(myFish); // ["angel", "clown", "drum", "sturgeon"]

10. pop:没有参数,负责删除数组的最后一个元素,改变原数组

 var arr14 = [1, 4, 5, 9];
      arr14.pop(); //[1, 4, 5]
      console.log(arr14);

11. push: 像数组末尾添加一个元素或多个元素 arr.push(element1, ..., elementN)

var arr14 = [1, 4, 5, 9];
      arr14.push("3"); //[1, 4, 5,9,"3"]
      arr14.push("3", 2);
      console.log(arr14);

12.shift: 删除数组的第一个元素 改变原数组

 var arr15 = [1, 4, 5, 9];
      arr15.shift(); //[4, 5, 9]
      console.log(arr15);

13.unshift: 在数组首位添加一个或多个元素

  var arr16 = [6, 1, 4, 5, 9, 8];
      arr16.unshift("5", 3); //["5", 3, 6, 1, 4, 5, 9, 8]
      console.log(arr16);
14. fill : 方法用一个固定值填充一个数组中从起始索引到终止索引内的全部元素。不包括终止索引。
      arr.fill(value[, start[, end]])
  参数:value 填充数组元素的值
        start 起始索引  默认0
         end 终止索引 默认this.length
  var arr17 = [2, 3, 4];
      arr17.fill(6); //[6,6,6]
      arr17.fill("7", 0, 2); //["7", "7", 6]
      console.log(arr17);

15. flat: 大家对这个方法一定不熟悉,我在一次做项目的时候用到了它,下面看看它的作用 方法很强大 扁平化数组  但是有兼容性的影响

// 参数表示扁平化的层级
      var arr18 = [2, 6, 8, [9, 10, 26]];
      let res18 = arr18.flat(1); //[2, 6, 8, 9, 10, 26]
      //Infinity 可以扁平任意深度的数组
      // let res18 = arr18.flat(Infinity)  //[2, 6, 8, 9, 10, 26]
      console.log(res18);

16.join: 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符。

 // 不改变原数组
      var arr19 = [2, 2, 6, 3, 4, 5, 6, "y"];
      var res19 = arr19.join(","); //2,2,6,3,4,5,6,y
      var res20 = arr19.join(""); //2263456y
      console.log(res20);

17. find : 方法返回数组中满足提供的测试函数的第一个元素  的值。否则返回 undefined。  注意是第一个

var arr21 = [
        { name: "lz", age: 21 },
        { name: "lx", age: 21 },
        { tine: "xx", ageL: 23 }
      ];
      let res21 = arr21.find(ele => ele.age === 21)
      console.log(res21) //{name: "lz", age: 21}  返回元素
      //想要所有符合条件的  就可以用filter方法
      let res22 = arr21.filter(ele => ele.age === 21)
      console.log(res22) //返回数组  [{…}, {…}]

18.findIndex: 方法返回数组中满足提供的测试函数的第一个元素的索引。否则返回-1。  注意是第一个

var arr23 = [
        { name: "lz", age: 21 },
        { name: "lx", age: 21 },
        { tine: "xx", ageL: 23 }
      ];
      let res23 = arr23.findIndex(ele => ele.age === 21)
      console.log(res23) //0 返回索引

19.indexOf: 方法返回在数组中可以找到一个给定元素的第一个索引,如果不存在,则返回-1。

var arr24 = [1,
        { name: "lz", age: 21 },
        { name: "lx", age: 21 },
        { tine: "xx", ageL: 23 }
      ];
      let res24 = arr24.indexOf(1)
      console.log(res24) //0 返回索引

 

要多加练习欧!

 

以上是关于数组的方法的主要内容,如果未能解决你的问题,请参考以下文章

几个关于js数组方法reduce的经典片段

几个关于js数组方法reduce的经典片段

有人可以在快速数组中给出“如果不存在则追加”方法的片段吗?

为什么我不能在此片段中生成唯一对象数组?

10个JavaScript代码片段,使你更加容易前端开发。

10个JavaScript代码片段,使你更加容易前端开发。