JS数组操作(添加,删除,排序,去重)

数组的添加

        arr.push()-----添加到结尾

        arr.unshift()-----添加到头部

数组的删除

        arr.shift()-----删除第一个

        delete arr[0] ----删除第一个

        arr.pop() -----删除最后一个

        arr.splice(i,1) ---- 删除下标为i的一项

数组的排序

var arr = [1, 5, 2, 5, 9, 10, 4];
      //数组升序
      arr.sort((a, b) => {
        return a - b;
      });
      console.log(arr);
//    [1, 2, 4, 5, 5, 9, 10]
      //数组降序
      arr.sort((a, b) => {
        return b - a;
      });
      console.log(arr);
//  [10, 9, 5, 5, 4, 2, 1]

 数组去重(常用)

1、[...new Set(arr)]

[...new Set(arr)]

2、filter()搭配indexOf特性

const arr = arr.filter((item,index){
     return arr.indexOf(item) === index;  // 因为indexOf 只能查找到第一个  
  });

 

对数组中的对象排序

export function sortUnitType(prop) {
  return function(obj1, obj2) {
    var val1 = obj1[prop]
    var val2 = obj2[prop]
    if (!isNaN(Number(val1)) && !isNaN(Number(val2))) {
      val1 = Number(val1)
      val2 = Number(val2)
    }
    if (val1 > val2) {
      return -1
    } else if (val1 < val2) {
      return 1
    } else {
      return 0
    }
  }
}

数组对象去重

 1、reduce

 dddd() {
      const fff = [{ n: 1 }, { n: 2 }, { n: 2 }, { n: 1 }, { n: 3 }]
      var obj = {}
      const gg = fff.reduce((prev, cur) => {
        obj[cur.n] ? '' : (obj[cur.n] = true && prev.push(cur))
        return prev
      }, [])
      console.log(gg)
    },

2、map

    dddd() {
      const fff = [{ n: 1 }, { n: 2 }, { n: 2 }, { n: 1 }, { n: 3 }]
      const dd = () => {
        let map = new Map()
        for (let item of fff) {
          if (!map.has(item.n)) {
            map.set(item.n, item)
          }
        }
        return [...map.values()]
      }
      const gg = dd()

      console.log(gg)
    },

字符串转数组

        var s='121,121,12121

        cosnt array=s.split(',')

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值