小白随笔之数组的方法

数组的增删

(后进先出)最近添加项最早被移除

  push()可接任意数量的参数,把他们挨个添加到数组的末尾,返回修改的数组长度

  pop()删除数组末尾项,length减少,并返回移除项

(先进先出)数组第一项最先被移除

push()

shift()移除数组中的第一项并返回该项,length减少

unshift() 向数组的开头添加任意项并返回新数组的长度;

IE7及更早版本对js的实现中存在一个偏差,其unshift()方法总是返回undefined而不是数组的新长度。IE8在非兼容模式下回返回正确的长度值 ----------《javascript高级程序设计第三版》

reverse() 方法会翻转数组的顺序,如

  const values = [10,5,1,3,4]
  console.log("[10,5,1,3,4]反转"+values.reverse()) // [10,5,1,3,4]反转4,3,1,5,10
  console.log("[10,5,1,3,4]进行升序操作"+values.sort(function(a,b){return a-b})) // [10,5,1,3,4]进行升序操作1,3,4,5,10
  console.log("[10,5,1,3,4]进行降序操作"+values.sort(function(a,b){return b-a})) // [10,5,1,3,4]进行降序操作10,5,4,3,1
  console.log(values) // [10, 5, 4, 3, 1]

当在使用sort()方法时会调用每一个数组项的toString()方法,然后比较得到的字符串(会好奇字符串是怎么做比较的?我当时是挺好奇的)以确定如何排序,即使数组中的每一项都是数值,sort()方法比较的也是字符串,

concat() 方法会创建当前数组的一个副本,然后将接受到的参数添加到这个副本的末尾,最后返回新构建的数组。如果在没有传参的情况下,它只是复制当前数组并返回副本,如果传递参一个或多个数组作为参数,则该方法会将这些数组中的每一项都添加到结果数组中,

slice() 方法可从已有的数组中返回选定的元素,该方法接受一个或者两个参数,既其实位置和结束位置,如果是有一个参数,该方法返回从该参数指定的位置开始到数组的末尾的所有项,如果是两个参数,则返回起始位置和结束位置之间的项(不包含结束位置)例如 arr.slice(1,5)则返回位置(索引)1-4之间的项。注:该方法不影响原始的数组,如

const colors = ["red","blue","yellow","gray"];
console.log(colors.slice(1,3)) // ["blue", "yellow"] 
console.log(colors) // ["red", "blue", "yellow", "gray"]

 如果slice()方法的参数中有一个是负数,则用数组长度加上该项来确定相应的位置,如

const colors = ["red","blue","yellow","gray"];
console.log(colors.slice(-2, -1))// 等价于=> colors.slice(2,3) ["yellow"]

如果结束位置小于起始位置,则返回空数组。

splice()方法,算是数组中最强大的方法了,主要用途是向数组中的中部插入项,使用方法有如下三种

1.删除:可以删除任意数量的项,只需要指定2个参数,要删除的第一项的位置和要删除的项数,

const colors = ["red","blue","yellow","gray"];
colors.splice(1,2)
console.log(colors) // (2) ["red", "gray"]

2.插入:可以向指定位置插入任意数量的项,只需提供3个参数,起始位置,要删除的项,和要插入的项,如

const colors = ["red","blue","yellow","gray"];
colors.splice(1,0,"pink");
console.log(colors) // (5) ["red", "pink", "blue", "yellow", "gray"]

3.替换:可以向指定位置插入任意数量的项,只需提供3个参数,起始位置,要删除的项,和要插入的项,如

const colors = ["red","blue","yellow","gray"];
colors.splice(1,2,"pink");
console.log(colors) // (3) ["red", "pink", "gray"]

splice()方法始终都返回一个数组,该数组包含从原始数组中删除的项,如果没有删除任何项,则返回一个空数组。

indexOf()和lastIndexOf()这两个方法都接受两个参数;要查找的项和(可选)表示查找起点位置的索引,其中indexOf()是从数组的开头向后查找,lastIndexOf()则从数组的末尾开始查找,这两个方法都是返回要查找的项在数组中的位置(索引),如果没有找到返回-1,当在比较第一个参数(也就是要查找的项)与数组中的每一项时,会使用全等操作符。

 

posted @ 2017-12-03 16:02  闲鱼一只  阅读(148)  评论(0编辑  收藏  举报