let arr = ["a", "b", 1, 3, 6]
console.log(arr.toString()) // a,b,1,3,6
console.log(arr.valueOf()) // ["a", "b", 1, 3, 6]
console.log(arr.join(",")) // a,b,1,3,6
console.log(arr.join("/")) // a/b/1/3/6
复制代码
let colors = ["red", "green", "blue"]
let count = colors.push("black")
console.log(count) // 4
let item = colors.pop()
console.log(item) // black
复制代码
let colors = ["red", "green", "blue"]
let count = colors.push("black")
console.log(count); // 4
let item = colors.shift()
console.log(item) // red
console.log(colors) //["green", "blue", "black"]
let count1 = colors.unshift("yellow");
console.log(count1) // 4
console.log(colors) // ["yellow", "green", "blue", "black"]
复制代码
// 反转
let values = [0, 1, 5, 10, 15]
values.reverse()
console.log(values) /// [15, 10, 5, 1, 0]
let values = [0, 1, 5, 10, 15]
values.sort()
console.log(values) // [0, 1, 10, 15, 5]
//升序
values.sort((a, b) => a - b)
console.log(values) // [0, 1, 5, 10, 15]
//降序
values.sort((a, b) => b - a)
console.log(values) // [15, 10, 5, 1, 0]
复制代码
// concat()
let colors = ["red", "green", "blue"]
let colors2 = colors.concat(["black", "brown"])
console.log(colors) // 原数组不变 ["red", "green", "blue"]
console.log(colors2) // ["red", "green", "blue", "black", "brown"]
//slice()
let colors = ["red", "green", "blue", "yellow", "purple"];
let colors3 = colors.slice(1)
let colors4 = colors.slice(1, 4)
console.log(colors3) //["green", "blue", "yellow", "purple"]
console.log(colors4) //["green", "blue", "yellow"]
// 注意:若是 slice()方法的参数中有一个负数,则用数组长度加上该数来肯定相应的位
// 置。例如,在一个包含 5 项的数组上调用 slice(-2,-1)与调用 slice(3,4)获得的
// 结果相同。若是结束位置小于起始位置,则返回空数组
复制代码
splice() 方法始终都会返回一个数组,该数组中包含从原始数组中删除的项(若是没有删除任何项,则返回一个空数组)前端
let colors = ["red", "green", "blue"]
let removed = colors.splice(0, 1) // 删除第一项
console.log(colors) //["green", "blue"]
console.log(removed) //["red"] 返回删除的项
let remo = colors.splice(1, 0, "yellow", "orange") // 从位置 1 开始插入两项
console.log(colors) // ["green", "yellow", "orange", "blue"]
console.log(remo) // [] 返回删除的项没删除因此为空
复制代码
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]
console.log(numbers.indexOf(4)) //3
console.log(numbers.lastIndexOf(4)) //5
复制代码
let numbers = [1, 2, 3, 4, 5, 4, 3, 2, 1]
let everyNum = numbers.every(function(item, index) {
return item > 0
})
console.log(everyNum) //true
let someNum = numbers.some(function(item, index) {
return item > 3
})
console.log(someNum) //true
let filterNum = numbers.filter(function(item, index) {
return item > 1
})
console.log(filterNum) // [2, 3, 4, 5, 4, 3, 2]
let mapNum = numbers.map(function(item, index) {
return item * 2
});
console.log(mapNum) // [2, 4, 6, 8, 10, 8, 6, 4, 2]
//forEach和for同样就是单纯的循环数组
numbers.forEach(function(item, index, array) {
//执行某些操做
})
复制代码
let values = [1, 2, 3, 4, 5]
let sum = values.reduce(function(prev, cur, index, array) {
return prev + cur
})
let sum1 = values.reduce(function(prev, cur, index, array) {
return prev * cur
})
let sum2 = values.reduceRight(function(prev, cur, index, array) {
return prev + cur
})
let sum3 = values.reduceRight(function(prev, cur, index, array) {
return prev * cur
})
console.log(sum) // 15 1+2+3+4+5 = 15
console.log(sum1) // 120 1*2*3*4*5 = 120
console.log(sum2) // 15 5+4+3+2+1 = 15
console.log(sum3) // 120 5*4*3*2*1 = 120
复制代码
参考:高级程序设计三
数组