如何解决在 Angular 中显示具有重复出现次数的唯一项目 尝试使用:
ngOnInit(): void {
this.bayService.selectedBay$.subscribe(
p => {
// do something with the Bay value
}
);
this.bayService.invalidBay$.subscribe(
p => {
// do something with the invalidBay value
}
);
}
onSubmit(): void {
this.bayService.selectedBayChanged(this.bayForm.get('bayStart').value);
}
ngOnDestroy(): void {
// if you stored Subscription reference
this.subscription.unsubscribe();
}
var array =
[
{"name":"user1","value":1}
{"name":"user1","value":1}
{"name":"user3","value":1}
]
我试过了:
var array =
[
{"name":"user1","value":3}
{"name":"user3","value":2}
]
但输出不是我想要的:
array.reduce((acc,o) => (acc[o.name] = (acc[o.name] || 0) + 1,acc),{})
解决方法
var array = [
{"name":"user1","value":1},{"name":"user1",{"name":"user3","value":1}
]
var reduced = array.reduce((acc,o) => (acc[o.name] = (acc[o.name] || 0) + 1,acc),{});
//Method 1
let result1 = [];
for (var prop in reduced) {
result1.push({name:prop,value:reduced[prop]});
}
console.log(result1)
//Method 2
var result2 = Object.keys(reduced).map(x => {
return {name : x,value : reduced[x]}})
console.log(result2)
尝试使用:
var array = [
{ name: "user1",value: 1 },{ name: "user1",{ name: "user3",value: 1 }
];
function removeDuplicate(arr) {
let thing = [];
arr.map(x => {
thing.push({
name: x.name,value: array.filter(y => y.name == x.name).length
});
arr
.filter(y => y.name == x.name)
.map(y => {
array.splice(array.findIndex(z => z.name == y.name),1);
});
});
return thing;
}
console.log(removeDuplicate(array));
您可以使用以下代码,采用相同的代码,但使用Object keys() 方法进行了扩展
thingsWithDuplicates = [
{"name":"user1","value":1}
];
distinctThings = thingsWithDuplicates.reduce((acc,{});
values = [];
Object.keys(distinctThings).forEach(key => {
values.push({'name': key,'value': distinctThings[key]})
});
console.log(values);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。