彩蛋:后台管理系统一站式平台模板
vue-admin-wonderful,一套为开发者快速开发准备的基于 vue2.x 越看越精彩的后台管理系统一站式平台模板。基于element ui 2.14.0
1、js数组对象去重复并合并数值
<script>
var arrs = [
{"id": "1","name": "张三","value": "1245"},
{"id": "1","name": "张三","value": "1360"},
{"id": "2","name": "李四","value": "1120"},
{"id": "2","name": "李四","value": "1362"},
{"id": "2","name": "李四","value": "1008"},
{"id": "3","name": "王五","value": "1360"},
{"id": "4","name": "赵六","value": "1986"},
{"id": "4","name": "赵六","value": "1240"}
];
function duplicate(arr) {
var map = {},
dest = [];
for (var i = 0; i < arr.length; i++) {
var ai = arr[i];
if (!map[ai.id]) {
dest.push({
id: ai.id,
name: ai.name,
value: ai.value
});
map[ai.id] = ai;
} else {
for (var j = 0; j < dest.length; j++) {
var dj = dest[j];
if (dj.id == ai.id) {
dj.value = (parseFloat(dj.value) + parseFloat(ai.value)).toString();
break;
}
}
}
};
return dest
}
console.log(this.duplicate(arrs));
</script>
效果图:
2、js数组去重及数组对象去重
<script>
function duplicate(arr, type) {
if (arr.length == 0) {
return arr;
} else {
if (type) {
var obj = {};
var newArr = arr.reduce((cur, next) => {
obj[next.name] ? '' : (obj[next.name] = true && cur.push(next));
return cur;
}, []);
return newArr;
} else {
return Array.from(new Set(arr));
}
}
}
let arr = [1, 1, 2, 3, 4, 4, 5]
let objArr = [
{name: '大哥',time: new Date(),id: 1},
{name: '大哥',time: new Date(),id: 2},
{name: '大哥',time: new Date(),id: 3},
{name: '大哥1',time: new Date(),id: 4},
{name: '大哥2',time: new Date(),id: 3},
]
console.log('数组去重:', duplicate(arr))
console.log('数组对象去重:', duplicate(objArr, 'name'))
</script>
效果图: