关于数组方法的总结
【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;});
真是诡异………………………………
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。