js数组方法总结

1.every方法
  • 检测数组中的元素是否全部满足条件
 computed: {
    isAll: {
      set(val){
        //点击全选,小选全部勾上
        this.arr.forEach(item =>item.c = val );
      },
          
     //forEach方法循环   
      get(){
         let flag = true;
         this.arr.forEach((item) => {
           if (!item.c) {
            flag = false;
           }
         });
         return flag;
  
        //every循环方法  返回一个布尔值,全部为true返回true,否则返回false
        return this.arr.every(item=>item.c)
      }
    },
  },
2. filter方法
  • 过滤原数组,返回新数组
 del(id) {
     //filter方法循环删除元素
      this.list = this.list.filter(item => item.id !== id);
    },
        
    //forEach方法循环删除元素    
    del(id) {
      this.list.forEach((item, index, arr) => {
        if (item.id === id) {
          // 数组splice方法删除元素
          this.list.splice(index, 1);
        }
      });
    },
        
        
     if (this.isSel === 'yes') {
        // filter 数组筛选/过滤  
        // 返回一个新数组, 会将循环过程中符合条件的加入新数组最后返回
         return this.list.filter(item => item.isDone)
         
         //forEach方法筛选   
        let newArr = []
        // 如果当前是 yes 就把 isDone 为 true 的数据放到新数组中返回
        this.list.forEach(item => {
            if (item.isDone) {
                newArr.push(item)
          }
        })
        return newArr
      }

3.findIndex方法

 // 根据 id 找到对应的数据并删除
	//forEach方法循环删除元素
       this.list.forEach((item, index) => {
         if (item.id === id) {
           this.list.splice(index, 1)
         }
      })

      // 根据自定义的条件查找索引: findIndex
      // 调用这个方法也会循环数组, 有一个返回值是索引
      const index = this.list.findIndex(item => item.id === id)
      this.list.splice(index, 1)
    },
4.forEach 按升序依次遍历数组中的值
  • 语法 arr.forEach(function(value, index, arr), this);

  • value(必须): 当前遍历时的数组值。

    index(可选): 当前遍历时的索引值。

    arr(可选): 数组对象本身。

    this(可选): 执行回调函数时的。

  let arr = [ 1,2,3,4,5,6]
        arr.forEach((value,index)=>{
            console.log(value)//值
            console.log(index)//下标

5.some()检测数组中是否存在满足条件的元素
  • 语法 arr.some(function(value, index, arr), this);

    参数值同froEach一样

    返回值:布尔类型 ture / false

let arr = [1,2,3,4,5]
        let result = arr.some(value=>value>6)//false
        let result1 = arr.some(value=>value>2)//true
        console.log(result,result1)

6.map() 对数组中的每一个元素都进行处理,返回新的数组
let arr = [1,2,3,4,5]
        let result = arr.map(item=> item*2)
        console.log(result)//[2, 4, 6, 8, 10]

7…keys() 遍历键名 / values() 遍历键值/ entries() 遍历键值对
 for(let i of ['a','b','c'].keys()){
            console.log(i)//keys()遍历下标 0 1 2
        }
        for(let item of ['a','b','c'].values()){
            console.log(item)//values()遍历值 a b c
        }
        for (let [i,item] of ['a','b','c'].entries()){
            console.log(i,item)//entries()遍历下标以及内容 
        }

8.reduce()数组的累加器,合并成为一个值。
  • 语法 arr.reduce((total, value, index, arr), init)

    参数 total(必须):初始值,之后为上一次回调的返回值。

    value(必须): 数组元素的值。

    index(可选): 索引值。

    arr(可选): 数组对象。

    init(可选): 初始值。

    返回值 :累加后的值

    let arr = [1,2,3,4,5]
            let sum = arr.reduce((total,value)=>total +value)
            console.log(sum)//15
    
     //计算购物车总数量
     ////先用filter 把选中的过滤出来,再用reduce累加数量,要返回
          return this.list.filter((item) => item.goods_state)
          .reduce((sum, item) => (sum += item.goods_count * item.goods_price), 0)
    
9.flat()深度遍历展开数组
  • 参数: depth(可选): 提取嵌套数组的结构深度,默认为1。

    返回值:展开后的新数组。

    flat方法会移除数组中的空白项

    若不清楚有多少层嵌套,可以直接用 Infinity 设置,就可全部展开

    Infinity 正无穷大的数值。

      let arr = [1,2,[3,[4,[5]]],6]
            let one = arr.flat()
            console.log(one)//[1, 2, 3, Array(2), 6]
     
            let inf = arr.flat(Infinity)
            console.log(inf)//[1, 2, 3, 4, 5, 6]
    
    

10.find()

findfindIndex的唯一区别在于,它返回的是实际值,而不是索引。实际工作中,咱们可以重用已经实现的findIndex

[1, 2, 3, 4, 5, 6, 7].find(value => value === 5); // 5

11. indexOf() 查找数组中某元素的第一个索引值。[不改变原数组] 如果没有就返回-1

  • 第一个参数为查找的值 第二个参数为查找的起始位
 let arr = [1, 2, 3, 4, 5, 6]
		 //查不到返回-1,否则返回索引
        console.log(arr.indexOf(3))//2 
        console.log(arr.indexOf(3, 3))//-1		
        console.log(arr.indexOf(8))//-1

12. lastIndexOf() 查找指定元素在数组中的最后一个位置。[不改变原数组]

let arr = [1, 1, 3, 4, 5, 1];
        console.log(arr.lastIndexOf(1))//5
        console.log(arr.lastIndexOf(1, -2))//1

13 . join() 把数组的所有元素放入一个字符串。元素通过指定的分隔符进行分隔。返回一个字符串

        let arr = [1, 2, 3, 4]
        let b = arr.join('-')
        console.log(b)//1-2-3-4
        console.log(typeof b)//string    

14. pop() 删除并返回数组的最后一个元素

       let arr = [1, 2, 3]
        let deleteitem = arr.pop()//3
        console.log(arr)//[1,2]    

15. push() 向数组的末尾添加一个或更多元素,并返回新的长度

        let arr = [1, 2, 3]
        let thelength = arr.push(4)//4
        console.log(arr)//[1,2,3,4]

16. reverse() 反转数组 改变原数组

 let arr = [1, 2, 3]
        arr.reverse()
        console.log(arr)//[3,2,1]

17. shift() 删除并返回数组的第一个元素

        let arr = [1, 2, 3]
        let deleteitem = arr.shift()//1
        console.log(arr)//[2,3]

18. slice() 从某个已有的数组返回选定的元素

  • 拷贝数组元素 [不改变原数组]
  • 两个参数为 复制索引开始 和复制索引结束
       let a = [1, 2, 3, 4]
       let b = a.slice(0, 2)
        console.log(b)//1,2 
	   //找数组最后一个元素
	   let c = a.slice(-1)
       console.log(c)//4

19. splice() 可以实现删除、插入和替换

  • 表达式 arr.splice(index, num, item1, item2, ...);
 //删除元素
    let arr = [1, 2, 3, 4, 5, 6]
    let newArr1 = arr.splice(0, 3)// 删除 arr 的前三个元素

    let newArr2= newArr.splice(-1, 1)//删除最后一位
 
    //删除并添加 /替换
        let arr = [1, 2, 3, 4]
        let addAndeDelete = arr.splice(0, 1, 6)//[6, 2, 3, 4]

20. sort() 对数组的元素进行排序

        // 默认情况下,不传参数的话,默认按字母升序,若为非字符串,则先调用toString()将元素转化为字符串的 Unicode ,再进行字符串比较
        let arr = [1,2,11,22,"A", "C", "B", "E", "D"];
        arr.sort();
        console.log(arr); //[1,11,2,22,"A","B","C","E","D"]
    
       //数组的升序与降序排序
        let arr = [1, 0, 5, 4, 9, 45, 78, 6, 14, 2];
        arr.sort((a, b) => a - b)  //从小到大
        console.log(arr)//[0, 1, 2, 4, 5, 6, 9, 14, 45, 78]
    

21. toString() 把数组转换为字符串,并返回结果 [不改变原数组]

  let arr = ['xiao', 'hao', 'wen', 24]
        let b = arr.toString()
        console.log(b)//xiao,hao,wen,24

22. unshift() 向数组的开头添加一个或更多元素,并返回新的长度。

        let arr = [1, 2, 3]
        let thelength = arr.unshift(4)//4
        console.log(arr)//[4,1,2,3 ]  

23. valueOf() 返回数组对象的原始值

  • includes() 查找数组是否包含某个元素。[不改变原数组,]

    • 第一个参数为要查找的值 必填

      第二个为查找的起始位置

      返回值 true或false

      let arr = [1, NaN, 100, '42'];
            console.log(arr.includes(1)); //true
            console.log(arr.includes(NaN)); //true
            console.log(arr.includes(1, 3)); //false
    
    

24. concat()

  • 连接两个或更多的数组,并返回结果
  • oncat() 方法用于合并两个或多个数组,此方法不会更改现有数组,而是返回一个新数组。
[1, 2, 3].concat([4, 5], 6, [7, 8]) // -> [1, 2, 3, 4, 5, 6, 7, 8]

25. fill()

  • 当咱们想用一个占位符值填充一个空数组时,可以使用fill方法。如果想创建一个指定数量的null元素数组,可以这样做:
[...Array(5)].fill(null) // -> [null, null, null, null, null]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值