本文并没有什么干货,由于数组的一些api开发中比较容易忘记,这里记录一下,方便本人查阅。
JavaScript 的 Array
对象是用于构造数组的全局对象,数组是类似于列表的高阶对象。
Array
是JavaScript的标准内置对象。既然是对象,那么就可以从这个对象的属性以及方法来认识Array
一、属性
1、length (数组长度)
let numbers = [1,2]
console.log (numbers.length)
//2
二、方法
1、unshift()、push() (增加元素)
unshift() 数组头部增加
push()数组尾部增加
let numbers = [1,2]
numbers.push(3)
console.log(numbers)
// [1,2,3]
numbers.unshit(0)
console.log(numbers)
// [0,1,2,3]
2、shift()、pop() (删除元素)
shift() 数组头部删除
pop() 数组尾部删除
let numbers = [1,2,3]
numbers.pop()
console.log(numbers)
// [1,2]
numbers.shit()
console.log(numbers)
// [2]
3、splice() (增加/删除/替换)
splice() 通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容(即方法执行后返回被移除的内容)
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
start 开始移除位置的下标
deleteCount 整数,表示要移除的数组元素的个数(可选)
item1,item2..... 要添加进数组的元素,从start 位置开始。如果不指定,则 splice() 将只删除数组元素。
let numbers = [1,2,3]
numbers.splice(1,2,2,3,4)
console.log(numbers)
// [1,2,3,4]
numbers.splice(2,1)
console.log(numbers)
// [1,2,4]
4、sort()、reverse() (排序、倒排)
array.sort([compareFunction])
compareFunction 用来指定按某种顺序进行排列的函数。如果省略,元素按照转换为的字符串的各个字符的 Unicode 位点进行排序。
如果 compareFunction(a, b) 小于 0 ,那么 a 会被排列到 b 之前; //升序
如果 compareFunction(a, b) 等于 0 , a 和 b 的相对位置不变
如果 compareFunction(a, b) 大于 0 , b 会被排列到 a 之前 //降序
let numbers = [3,1,6,4,5,9]
numbers.sort((a,b)=>a-b)
console.log(numbers)
// [1, 3, 4, 5, 6, 9]
let numbers2 = [3,1,6,4,5,9]
numbers2.sort((a,b)=>b-a)
console.log(numbers2)
// [9, 6, 5, 4, 3, 1]
arr.reverse()
reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。
let numbers = [9,8,7,6,5,4,3,2,1]
console.log(numbers.reverse())
//[1, 2, 3, 4, 5, 6, 7, 8, 9]
以上为常用并且会改变原数组的方法。
5、join()、toString() (数组转字符串)
arr.join(str) 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串。如果数组只有一个项目,那么将返回该项目而不使用分隔符
str (可选)字符串
let numbers = [1,2,3,4,5]
console.log(numbers.join("-"))
// "1-2-3-4-5"
arr.toString() 返回一个字符串,表示指定的数组及其元素,没有参数。返回用英文逗号隔开的数组元素组成的字符串。
let numbers = [1,2,3,4,5]
console.log(numbers.toString())
// "1,2,3,4,5"
以上为数组常用转字符串的方法。
6、forEach()
arr.forEach((current,index,array)=>{
// 逻辑
})
current(必须),数组当前元素的值
index(可选),当前元素的索引值
arr(可选),数组对象本身
注意:return 只能退出当次循环,使用break、continue会直接报错,退出整个循环需要try...catch抛出异常。
let numbers = [1,2,3,4,5,6]
numbers.forEach((current,index,array)=>{
console.log(current)
})
//1
//2
//3
//4
//5
//6
let numbers = [1,2,3,4,5,6]
numbers.forEach((current,index,array)=>{
if(current===2) {
return
}
console.log(current)
})
//1
//3
//4
//5
//6
let numbers = [1,2,3,4,5,6]
try {
numbers.forEach((current,index,array) => {
if (current === 2) {
throw('整个循环终止')
}
console.log(current)
})
} catch(e) {
//
}
// 1
7、map()
......待续