数组过滤求解,在不确定name,和date的情况下, 找到 name 相同,date相同的对象, 把其 commodity 的内容拼结,返回一个对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
var arr =[
{name:'张三',commodity:'电视',date:'2020-10-1'},
{name:'张三',commodity:'洗衣机',date:'2020-10-1'},
{name:'张三',commodity:'手机',date:'2020-10-1'},
{name:'李四',commodity:'手机',date:'2020-10-1'},
{name:'张三',commodity:'电脑',date:'2020-10-5'},
{name:'王五',commodity:'电脑',date:'2020-10-5'},
{name:'李四',commodity:'手机',date:'2020-10-8'},
{name:'王五',commodity:'音响',date:'2020-10-8'},
{name:'王五',commodity:'手机',date:'2020-10-8'},
]
//在不确定name,和date的情况下, 找到 name 相同,date相同的对象, 把其 commodity 的内容拼结,返回一个对象
//返回结果示例:
arr=[
{name:'张三',commodity:'电视,洗衣机,手机',date:'2020-10-1',number:3},
{name:'李四',commodity:'手机',date:'2020-10-1',number:1},
{name:'张三',commodity:'电脑',date:'2020-10-5',number:1},
{name:'王五',commodity:'电脑',date:'2020-10-5',number:1},
{name:'李四',commodity:'手机',date:'2020-10-8',number:1},
{name:'王五',commodity:'音响,手机',date:'2020-10-8',number:2}
]
console.log(arr)
</script>
</body>
</html>
哈喽,代码如下,有用请点采纳哦
let arr = [
{name:'张三',commodity:'电视',date:'2020-10-1'},
{name:'张三',commodity:'洗衣机',date:'2020-10-1'},
{name:'张三',commodity:'手机',date:'2020-10-1'},
{name:'李四',commodity:'手机',date:'2020-10-1'},
{name:'张三',commodity:'电脑',date:'2020-10-5'},
{name:'王五',commodity:'电脑',date:'2020-10-5'},
{name:'李四',commodity:'手机',date:'2020-10-8'},
{name:'王五',commodity:'音响',date:'2020-10-8'},
{name:'王五',commodity:'手机',date:'2020-10-8'}
]
let res = []
for(let x=0;x<arr.length;x++){
let obj = JSON.parse(JSON.stringify(arr[x]))
obj.number = 1
if(arr[x].hasSame){
continue;
}
for(let y=x+1;y<arr.length;y++){
if(arr[x].name === arr[y].name && arr[x].date === arr[y].date){
obj.number++;
obj.commodity += `,${arr[y].commodity}`
arr[y].hasSame = true
}
}
res.push(obj)
}
console.log(res);