关于数组方法的总结

【arr(1,2,3,4);以此数组为操作对象;】

以下方法不改变原数组(只是数组的转换)

arr.join(字符串):

  • 使用括号中的字符串连接数组中的每个元素,返回一个连接好的字符串,不改变原数组;

  • console.log(arr.join("-")); --> 1-2-3-4

arr.toString():

  • 可以将数组转换成字符串形式,返回字符串,不改变原数组。不太常用,一般用join方法;

  • console.log(arr.toString()); -->1,2,3,4

以下方法改变原数组(数组的基本操作)

arr.push(item1, item2, ……):

  • 可以向数组最后添加一个或者多个元素,返回数组的新长度length,改变原数组;

  • console.log(arr.push(5,6)); -->6

  • console.log(arr); -->[1,2,3,4,5,6]

arr.unshift(item1, item2, ……):

  • 可以向数组最前面添加一个或者多个元素,返回数组新长度length,改变原数组;

  • console.log(arr.unshift(5,6)); -->6

  • console.log(arr); -->[5, 6, 1, 2, 3, 4]

arr.pop():

  • 从数组最后面删除一个元素,返回删除的元素值,改变原数组;

  • console.log(arr.pop()); --> 4

  • console.log(arr); -->[1, 2, 3]

arr.shift():

  • 从数组最前面删除一个元素,返回删除的元素值,改变原数组;

  • console.log(arr.shift()); --> 1

  • console.log(arr); -->[2, 3, 4]

位置方法(以下两个方法h5提供,ie9以下不支持)

arr.indexOf(param1, param2):

  • 返回找到的第一个匹配的索引值,没有找到返回-1;

  • param1表示要找哪个元素;

  • param2是一个索引值,表示要从哪个位置开始找,为空默认从头开始找;

  • arr.indexOf(3); -->2

arr.lastIndexOf(param1, param2):

  • 返回找到的最后一个匹配的索引值,没有找到返回-1;

  • param1表示要找哪个元素;

  • param2是一个索引值,表示要从哪个位置开始找,为空默认从头开始找;

  • arr.indexOf(3); -->2

操作方法

arr.concat(item1, item2, ……):

  • 可以在数组后面连接新的元素,返回连接后的数组,不改变原数组;

  • 注意:如果传入的参数为数组,会将两个数组拼接后返回;

  • console.log(arr.concat(5, 6)); -->[1, 2, 3, 4, 5, 6]

  • console.log(arr); -->[1, 2, 3, 4]

  • 该方法可以通过不传参数的方式,达到复制数组的目的,复制的数组与原数组不关联;

arr.slice(start, end):

  • 可以拷贝从start索引开始,到end索引前一位的元素值,以数组的形式返回,不改变原数组;

  • console.log(arr.slice[0, 3]); -->[1, 2, 3]

  • console.log(arr); -->[1, 2, 3, 4]

arr.splice(start, len, item1, item2, ……):

  • 可以截取(删除)从start索引开始,len长度的元素,剩余的参数可选,表示在截取(删除)的位置插入新的元素,以数组形式返回截取(删除)的部分,改变原数组

  • console.log(arr.splice(1, 2)); -->[2, 3]

  • console.log(arr); -->[1, 4]

排序方法

arr.reverse():

  • 翻转数组,返回翻转后的数组(一般不使用返回值),改变原数组;

  • console.log(arr.reverse()); -->[4, 3, 2, 1]

  • console.log(arr); -->[4, 3, 2, 1]

arr.sort();

  • 可以对数组元素是字符串的数组进行排序,按照首字母,不需要考虑后面的值;

  • 用于对数组元素进行排序,返回排序后的数组,改变原数组;

  • 如果不传参数,按照数字的最高位的数字进行排序;(坑)

  • 想要进行正确的升序和降序,需要传递一个回调函数;

  • 升序:arr.sort(function(a, b){return a-b;});

  • 降序:arr.sort(function(a, b){return b-a;});

  • 真是诡异………………………………


木木俞
192 声望5 粉丝

佛系前端