JS数组对象
就是一种特殊的对象
个人感想
JS没有真正的数组类似于JAVA的那种数组数据类型
只是在用对象模拟数组
每一个JS数组都有一个length属性
JS数组转换
let arr = '123'
Array.from(arr)
这个函数会尝试转换成一个数组
要么有个length要么有一个下标才能变成数组
什么是伪数组
没有PUSH POP 函数的数组就是伪数组
或者说没有数组共有属性的数组就是伪数组
如何合并一个数组?
cancat()可以合并两个数组 被合并的数组不会变 会创建一个新的数组
如何切一个数组
slice()可以实现像切面包一样切一个数组 像从那里切(下标)就往函数下面加参数
增删改查
删
可以用length删 但是永远不要用。
三种方法
shift()删第一个 pop()删最后一个 最好的方法! splice(从哪儿开始删,删几个?,在删的位置增加)
let arr = [1,2,3,4,5]
arr.splice(1,1,222)
删除2并把2变成222
遍历数组 (查)
FOR循环
let arr1=[1,2,3,4,5,6,7]
arr1.forEach(item=>{
console.log(item)
})
forEach永远滴神
for循环和foreach区别是什么?
for可以断 foreach不可以 for是块级作用域 foreach是函数作用域
索引越界
任何不存在的下标都没有toString方法
let arr2= [11,2,3,,4123,123,5,213,123,65,12]
arr2.indexOf(11)
arr2.find(x=>{return x%11 ===0 })
find()方法如果找到了会马上返给你
findIndex()方法会返给你下标
indexOf()参数填想找的属性 如果有会返给你下标如果没有就会给-1
增加数组中的元素
let arr = [1,2,3,4,5]
arr.push(6)在尾部添加
arr.unshift(0)在头部添加
我想在中间添加怎么办呢?
let arr = [1,2,3,4,5]
arr.splice(1,0,1.5)
arr.reverse()反转一个数组从后往前
乱序怎么办?
let arr = [1,2,3,4,5]
arr.sort((a,b)=>{
if(a>b){
return -1
}else if(a===b){
return 0
}
else{
return 1
}
})
数组的变化
map
let arr = [1,2,3,4,5,6,7,8]
arr.map(item=>item*item)
MAP可以理解为N变N 大家一起经历一个函数的变化
filter
let arr = [1,2,3,4,5,6,7,8]
arr.filter(item=> item%2===0? true:false)
falter可以理解为N变少
reduce
let arr = [1,2,3,4,5,6,7,8]
arr.reduce((sum,item)=>{return sum+item},0)
0是初始值