创建数组
【1】使用new关键字
var arr=new Array();//[]
var arr=new Array(7);//(7) [empty × 7]
var arr=new Array('one','hello')
let arr=new Array(1,3,4)//Array(3)
【2】使用字面量来创建
var arr=[]
var arr=['one','hello']
数组方法(添加,删除)
【1】往数组添加元素
push()//
unshift()方法//在数组头部添加元素
示例
let arr=[2,3,5,0]
let s= arr.push(11)
console.log(s)//5返回数组个数
let arr=[2,3,5,0]
let a=arr.unshift(9,12, '',13)
console.log(a)//8
【2】删除数组中的元素
pop()//删除数组尾部的元素
shift()//删除数组头部的元素
示例
let arr=[1,2,3,5,0]
let s= arr.pop()//返回删除的元素
console.log(s)//0
let arr=[2,3,5,0]
let s= arr.shift()
console.log(s)//2
【3】在数组任意位置上添加或删除元素
splice(index,count,要添加的元素)
第1个参数:表示要删除或者插入的元素的索引(下标)
第2个参数:表示要删除元素的个数
第3个之后参数:表示要添加到数组的元素
示例
let arr=[2,9,5,0]
let a=arr.splice(1,1)
console.log(a)//[9]返回删除的元素
console.log(arr)//(3) [2, 5, 0]
let arr=[2,9,5,0]
let a=arr.splice(0,1,3,5,89,45)
console.log(a)//[2]
console.log(arr)//(7)[3, 5, 89, 45, 9, 5, 0]
let arr=[2,9,5,0]
let a=arr.splice(1,1,3,5,89,45)
console.log(a)//[9]
console.log(arr)//(7) [2, 3, 5, 89, 45, 5, 0]
数组方法
1、数组合并
concat 连接两个或者多个数组
var arr1=[1,3]
var arr2=[3,3,6]
var arr3=[9,8,0]
var num=arr1.concat(arr2,arr3)
console.log(num)//(8) [1, 3, 3, 3, 6, 9, 8, 0]
2、迭代器函数
every对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true
//如果数组里的所有元素可以被2整除,函数返回true
let isOdd=function odd(x){
if(x%2===0){
return true
}else{
return false
}
}
let num=[2,6,8,14]
console.log(num.every(isOdd))//true
filter对数组中的每一项运行给定函数,返回该函数会返回true的项组成的数组。
let isOdd=function odd(x){
if(x%2===0){
return true
}else{
return false
}
}
let num=[2,6,8,14,1,3]
console.log(num.filter(isOdd))//[2,6,8,14]
some对数组中的每一项运行给定函数,如果任意一项返回true,则返回true
//如果数组里的任一元素可以被2整除,函数返回true
let isOdd=function odd(x){
if(x%2===0){
return true
}else{
return false
}
}
let num=[2,6,8,14,1,3]
console.log(num.some(isOdd))//true
forEach遍历,没有返回值
let isOdd=function odd(x){
if(x%2===0){
console.log(true)
}else{
console.log(false)
}
}
let num=[2,6,8,14,1,3]
num.forEach(isOdd)
map对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组
let isOdd=function odd(x){
if(x%2===0){
return true
}else{
return false
}
}
let num=[2,6,8,14,1,3]
console.log(num.map(isOdd))//[true,true,true,true,false,false]
reduce,累计
let arr=[1,4,6,7]
let sum=0
let s=arr.reduce(function(sum,item){
return sum+=item
})
console.log(s)//18
搜索与排序
reverse颠倒数组
var arr=[1,3,78]
console.log(arr.reverse())//(3) [78, 3, 1]
sort按照默认数组排序
var arr=[1,3,78,23]
console.log(arr.sort())//(4) [1, 23, 3, 78]
数组按从小到大排序
var arr=[1,3,78,23]
function smallTo(value1,value2){
if(value1>value2){
return 1
}else{
return -1
}
}
let newArr=arr.sort(smallTo)
console.log(newArr)//(4) [1, 3, 23, 78]
数组按从大到小排序
var arr=[1,3,78,23]
function smallTo(value1,value2){
if(value1>value2){
return -1
}else{
return 1
}
}
let newArr=arr.sort(smallTo)
console.log(newArr)//(4) [78, 23, 3, 1]
indexOf搜索
var arr=[2,4,6,8,3,1]
let item=arr.indexOf(8)//搜索元素所在的索引
console.log(item)//3
lastIndexOf搜索
var arr=[2,4,8,6,8,3,1]
let item=arr.lastIndexOf(8)//搜索元素最后一次出现所在位置的索引
console.log(item)//4
slice截取数组的元素片段
示例1
var arr=[2,4,8,6,8,3,1]
let newArr=arr.slice(0)
console.log(newArr//7) [2, 4, 8, 6, 8, 3, 1]
console.log(arr)//(7) [2, 4, 8, 6, 8, 3, 1]
示例2
var arr=[2,4,8,6,8,3,1]
let newArr=arr.slice(1)
console.log(newArr)//(6) [4, 8, 6, 8, 3, 1]
console.log(arr)//(7) [2, 4, 8, 6, 8, 3, 1]
示例3
var arr=[2,4,8,6,8,3,1]
let newArr=arr.slice(1,3)
console.log(newArr)//(2) [4, 8]
console.log(arr)//(7) [2, 4, 8, 6, 8, 3, 1]
数组转为字符串
join将所有数组连接成一个字符串
var arr=[2,4,8,6,8,3,1]
let str=arr.join('')
console.log(str)//2486831
console.log(typeof str)//string
toString将数组作为字符串返回
var arr=[2,4,8,6,8,3,1]
let str=arr.toString()
console.log(str)//2,4,8,6,8,3,1
console.log(typeof str)//string
toLocaleString将数组转为字符
var arr=[2,4,8,6,8,3,1]
let str=arr.toLocaleString()
console.log(str)//2,4,8,6,8,3,1
console.log(typeof str)//string
数组扁平化
ES6中
flat方法
let arr=[1,4,6,7,[2,67]]
let newArr=arr.flat()
console.log(newArr)//(6) [1, 4, 6, 7, 2, 67]
newArr.push(2)
console.log(newArr)//(7) [1, 4, 6, 7, 2, 67, 2]
console.log(arr)//(5) [1, 4, 6, 7, Array(2)]
利用for循环,判断是否存在数组。若为数组则利用扩展运算符展开
let arr=[1,4,6,7,[2,67]]
let newArr=[]
for(let i=0,len=arr.length;i<len;i++){
if(Array.isArray(arr[i])){
newArr.push(...arr[i])
}else{
newArr.push(arr[i])
}
}
console.log(newArr)//(6) [1, 4, 6, 7, 2, 67]
本文详细介绍了JavaScript中数组的创建方式、常用操作方法,包括添加、删除元素,以及数组的迭代、搜索、排序和转换等高级功能。通过具体示例,深入浅出地讲解了如何高效地使用数组。

被折叠的 条评论
为什么被折叠?



