数组去重

函数说明

1、宜搭自带Lodash.js,所以直接使用Lodash提供的方法即可。

2、其中array是需要去重的数组,该方法返回一个去重后的新数组。

使用示例

let arr = [1, 1, 2, 3, 4, 4, 5, 5, 6];
let newArr = _.uniq(arr); // => [1, 2, 3, 4, 5, 6]

数组对象去重

函数体

export function uniqueFunc(arr, uniId){
  const res = new Map();
  return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
}

函数说明

1、该方法接受两个参数,arr:需要去重的数组对象,uniId:去重依据。

2、该方法返回一个去重后的新数组。

使用示例

let json = [
  {
    label: "小王",
    value: "A00001"
  },
  {
    label: "小李",
    value: "A00002"
  },
  {
    label: "小王",
    value: "A00001"
  },
  {
    label: "小李",
    value: "A00002"
  },
  {
    label: "小张",
    value: "A00003"
  }
];

let newJson = this.uniqueFunc(json, "value");

返回示例



数组 / 数组对象求和

函数体

// data:Array,需要求和的数组 / 数组对象,uniId:求和依据(数组对象时需传)
export function getArraySum(data = [], uniId = '') {
  return data.reduce((prev, cur) => {
    return prev + (uniId ? +cur[uniId] || 0 : +cur || 0);
  }, 0);
}

使用示例

const arr1 = [1, 2, 3, 4, 5, 6];
const arr2 = ['1', '2', '3', '4', '5', '6'];
const arr3 = [{
  name: '张一',
  count: 1
}, {
  name: '张二',
  count: 2
}, {
  name: '张三',
  count: 3
}, {
  name: '张四',
  count: 4
}, {
  name: '张五',
  count: 5
}, {
  name: '张六',
  count: 6
}];
const arr4 = [{
  name: '张一',
  count: '1'
}, {
  name: '张二',
  count: '2'
}, {
  name: '张三',
  count: '3'
}, {
  name: '张四',
  count: '4'
}, {
  name: '张五',
  count: '5'
}, {
  name: '张六',
  count: '6'
}];
console.log('arr1', this.getArraySum(arr1)); // => 21
console.log('arr2', this.getArraySum(arr2)); // => 21
console.log('arr3', this.getArraySum(arr3, 'count')); // => 21
console.log('arr4', this.getArraySum(arr4, 'count')); // => 21


附录

Lodash

JS reduce 的用法


点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部