JS数组

194 阅读2分钟

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是初始值