数组对象常用的处理方法

常用的数组对象处理方法

1.数组对象根据对象里面的key值去重

   * @description 数组对象去重
   * @arr 数组对象[{a:1,b:2},{a:1,b:2}]
   * @uniId 去重的依据,即key
   * return 不改变原数组,返回新的数组
   */
uniqueFunc(arr, uniId) {
    const res = new Map();
    return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
}

2.数组去重

例:将下面数组去除重复元素(以多种数据类型为例)

const arr = [1, 2, 2, 'abc', 'abc', true, true, false, false, undefined, undefined, NaN, NaN]

2.1 利用Set()+Array.from()

  • Set对象:是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即Set中的元素是唯一的
  • Array.from() 方法:对一个类似数组可迭代对象创建一个新的,浅拷贝的数组实例。
const result = Array.from(new Set(arr))
console.log(result) // [ 1, 2, 'abc', true, false, undefined, NaN ]

2.2 利用数组的indexOf方法

indexOf() 方法:返回调用它的String对象中第一次出现的指定值的索引,从 fromIndex 处进行搜索。如果未找到该值,则返回 -1

function removeDuplicate(arr) {
  const newArr = []
  arr.forEach(item => {
    if (newArr.indexOf(item) === -1) {
      newArr.push(item)
    }
  })
  return newArr // 返回一个新数组
}

const result = removeDuplicate(arr)
console.log(result) // [ 1, 2, 'abc', true, false, undefined, NaN, NaN ]

3.数组对象根据对象的某个key值排序

const arr=[
    {age:1,name:"虾米"}{age:6,name:"螃蟹"}{age:4,name:"鲨鱼"}
]
/**
*@description降序或者升序函数
*@flag flag===true 升序 否则降序
*@key 需要排序的 key
* 没有返回值,会改变原数组
*/
function sortArr(arr,flag,key){
    if(flag){
        arr.sort((a,b)=>a[key]-b[key])
    }else{
        arr.sort((a,b)=>b[key]-a[key])
    }
}
//使用
sortArr(arr,true,'age') //升序 得到arr=[{age:1,name:"虾米"},{age:4,name:"鲨鱼"}, {age:6,name:"螃蟹"}]
sortArr(arr,false,'age') //降序 得到arr=[{age:6,name:"螃蟹"},{age:4,name:"鲨鱼"},{age:1,name:"虾米"}]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值