可能重复:
如何计算Javascript数组中的匹配值
我有数组元素,
array_elements = ["2","1","2","2","3","4","3","3","3","5"];
我想像下面的方式计算数组元素,
回答:
2来 - > 3次
1来 - > 1次
3来 - > 4次
4来 - > 1次
5来 - > 1次
注意:每个值计数应仅打印一次.
我有这样的对象数组。
const array = [ { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 1, y: 2 }, { x: 3, y: 4 }, { x: 1, y: 2 }, { x: 3, y: 12 } ]
Run Code Online (Sandbox Code Playgroud)
我想计算重复对象并将计数存储为新对象字段。
我发现了这个片段,它工作得很好,但它不完全是我需要的。
const names = [{ _id: 1 }, { _id: 1}, { _id: 2}, { _id: 1}]
const result = [...names.reduce( (mp, o) => {
if (!mp.has(o._id)) mp.set(o._id, Object.assign({ count: 0 }, o));
mp.get(o._id).count++;
return mp;
}, …Run Code Online (Sandbox Code Playgroud) 我正在为我的产品列表创建一个过滤器来计算所有生产者并显示如下:
苹果 (3)
我从数组中消除了重复项:["Apple","Apple","Apple"] 我使用了这个链接:
但我的问题是我想从数组中计算这些元素并将它们显示在一个对象数组中,因为我需要稍后对其进行迭代。
从上面的这个苹果数组中,我需要结果:[{"Apple": 3},{...},{...}]
我试图这样做,但它返回了我的对象,我无法在它之后迭代: 如何在 javascript 中计算数组中的重复值
我需要一个不重复的对象数组
我正在使用 Angular 4。
我的代码:
组件.ts
async ngOnInit() {
this.cart$ = await this.cartService.getCart();
this.subscription = this.productService.getAll().subscribe(products => {
this.category = products.filter(
products => products.category == this.name
);
this.filters();
});
}
filters() {
this.category2 = this.category.map(value => value.producer);
this.filteredArray = this.eliminateDuplicates(this.category2);
console.log(this.filteredArray);
}
eliminateDuplicates(arr) {
let i,
len = arr.length,
out = [],
obj = {};
for (i = 0; i < len; i++) …Run Code Online (Sandbox Code Playgroud) 我试图显示我的数组的内容,但存在重复的地方只打印名称和数字,例如
myArr = ['apple', 'apple', 'orange', 'apple', 'banana', 'orange', 'pineapple']
Run Code Online (Sandbox Code Playgroud)
会显示;
apple 3
orange 2
banana
pineapple
Run Code Online (Sandbox Code Playgroud)
到目前为止,我将它们全部作为字符串返回:
arrList = myArr.join(', ');
arrList.toString()
Run Code Online (Sandbox Code Playgroud)