0%

JS 常用数组方法

1. 复制数组
1
arr.slice(0)
2. 数组长度
1
arr.length
3. 清空数组
1
arr.length = 0
4. 将“类似数组的对象”变成真正的数组
1
var arr = Array.protoytpe.slice.call(arrLike)
5. 在数组的末端添加一个或多个元素,并返回添加新元素后的数组长度
1
2
3
var arr = [1, 2, 3]
arr.push(1) // return 4 | [1, 2, 3, 4]
arr.push(1, 2) // return 6 | [1, 2, 3, 4, 1, 2]
6. 删除数组的最后一个元素,并返回该元素
1
2
var arr = [1, 2, 3]
arr.pop() // return 3
7. 判断是否为数组
1
2
3
4
5
// 1. instanceof 运算符
var arr = []
console.log(arr instanceof Array) // return true
// 2. Array.isArray() 方法
console.log(Array.isArray(arr)) // return true
8. 在数组的开头添加一个或多个元素,并返回添加新元素后的数组长度
1
2
3
var arr = [1, 2, 3]
arr.unshift(1) // return 4 | [1, 1, 2, 3]
arr.unshift(1, 2) // return 6 | [1, 2, 1, 1, 2, 3]
9. 删除数组的第一个元素,并返回该元素
1
2
var arr = [1, 2, 3]
arr.shift() // return 1
10. 翻转数组
1
2
var arr = [1, 2, 3]
arr.reverse() // return [3, 2, 1]
11. 数组排序
1
2
3
4
5
6
7
8
9
10
// 1. 升序
var arr = [1, 3, 2, 6, 5]
// return [1, 2, 3, 5, 6]
arr.sort(function(a, b) {
return a - b
})
//return [6, 5, 3, 2, 1]
arr.sort(function(a, b) {
return b - a
})
12. 数组索引
1
2
3
4
5
6
7
var arr = [1, 2, 3, 2]
// 1. 查找数组中给定元素的第一个索引 如果存在返回索引号,否则返回 -1
arr.indexOf(2) // return 1
// 2. 查找数组中给定元素的最后一个索引 如果存在返回索引号,否则返回 -1
arr.lastIndexOf(2) // return 3
// indexOf lastIndexOf 可选参数 查找起始位置
arr.indexOf(2, 2) // return 3
13. 数组去重
1
2
3
4
5
6
7
8
9
function unique(arr) {
var newArr = []
for(var i = 0; i < arr.length; i++) {
if(newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
return newArr
}
14. 数组转换字符串
1
2
3
4
5
6
7
var arr = ['h', 'l', 'l']
// 1. toString() 方法
arr.toString() // return 'h,l,l'
// 2. join() 方法
arr.join() // return 'h,l,l'
arr.join('') // return 'hll'
arr.join('|') // return 'h|l|l'
15. 连接两个数组
1
2
var arr = [1, 2, 3, 4]
arr.concat(['hll']) // reutrn [1, 2, 3, 4, 'hll']
16. 数组截取
1
2
3
var arr = ['h', 'l', 'l', 'c']
// slice(begin, end) 左开右闭 返回截取的新数组
arr.slice(0, 2) // return ['h', 'l']
17. 数组删除
1
2
3
var arr = ['h', 'l', 'l', 'c']
// splice(从第几个开始, 要删除的个数) 返回被删除的元素 覆盖原数组
arr.splice(0, 2) // return ['h', 'l']