- [
- {UID:"222",value:"111"},
- {UID:"222",value:"103"},
- {UID:"123",value:"302"},
- {UID:"123",value:"031"}
- ]
- 改成[
- {UID:"222",value:"111,103"},
- {UID:"123",value:"302,031"}
- ]
- function handle(arr) {
- var res = [],
- obj = {},
- index = 0;
- arr.forEach(val => {
- if (obj.hasOwnProperty(val.UID)) {
- res[obj[val.UID]].value = res[obj[val.UID]].value + ',' + val.value;
- } else {
- obj[val.UID] = index++;
- res.push({
- UID: val.UID,
- value: val.value
- });
- }
- });
- return res;
- }
- var arr = [{
- UID: "222",
- value: "111"
- }, {
- UID: "222",
- value: "103"
- }, {
- UID: "123",
- value: "302"
- }, {
- UID: "123",
- value: "031"
- }]
- console.log(handle(arr))
3.for循环时,每次取出一个元素与对象进行对比,如果这个元素不重复,则把它存放到结果数组中,同时把这个元素的内容作为对象的一个属性,并赋值为1,存入到第2步建立的对象中。