数组去重
函数说明
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
发表评论 取消回复