首先,数组的API 从简单到复杂,返回值可能不同,有的直接改变数组,有的不会直接改变数组,接受的数据不同,接下来就从这几方面去分析么个API,也不去分类,从功能来说,讲到哪个是哪个
- Push 增
arr.push(1,2,3);
向数组末尾增加一项或多项
改变数组本身
返回数组长度
- Unshift 增
arr.unshift(1,2,3);
向数组开始位置添加一项或多项
改变数组本身
返回数组长度
- Pop 删
arr.pop()
删除数组末尾第一个元素
改变数组本身
返回删除的元素
- shift 删
arr.shift()
删除数组开始位置第一个元素
改变数组本身
返回删除的元素
- splice 增/删
arr.splice(增或删的开始索引, 删除的数量,增加项)
- 增(如果删除的数量为0,则为增加)
arr.splice(0, 1); //从第0项开始删除,删除一项
; - 删
arr.splice(0, 0, '1', '2'); //从第0项开始添加,删除项为'1','2'
;
splice也会改变原数组
返回值为删除项构成的数组,如果是增加返回空数组[ ]
- slice 截取数组
newArr = arr.slice(2,5); 包含2不包含5
不改变原数组(需要赋值给新数组)
返回截取的数组
用arr.slice()可以实现数组的深拷贝
- join把数组转换为字符串
str = arr.join(',')
不改变原数组(需要赋值)
返回转换成的字符串
- toString 把数组转换为字符串
str = a.toString()
不改变原数组(需要赋值)
返回转换成的字符串
和join的区别就是,他的字符串分割符只能是逗号,无法自定义。
- concat 合并数组
newArr= arr1.concat(arr2,arr3);
不改变原数组(需要赋值)
返回新数组
- reverse 反转
arr.reverse()
改变原数组
返回反转的数组
- sort 排序
arr.sort(fn)
改变原数组
返回排序后的数组
sort不传参数时,按照字母的先后顺序排序。 sort传参时,必须传递一个数组。
function sortNumber(a,b)
{
return a - b
}
var arr = new Array(6)
arr[0] = "10"
arr[1] = "5"
arr[2] = "40"
arr[3] = "25"
arr[4] = "1000"
arr[5]