Wpis z mikrobloga

@bonus: Pokaż przykład co konkretnie jest obj, bo teraz to można to interpretować na co najmniej 2 sposoby:
- masz tablice obiektów obj i chcesz policzyć ile z nich ma takie same pole obj.name
- w obj.name masz tablicę nazw i chcesz policzyć ile jest takich samych nazw

Choć mam wrażenie, że żadna z moich interpretacji nie jest tym co chciałeś przekazać(bo obie kwestie są trywialne).
  • Odpowiedz
@Ununoctium:
Value są zawsze jakąś sztywną tablicą, ale różne obiekty mają inne keye.

np.

var data = [
{name: 'a', size: 'a'},
{name: 'a', size: 'a'},
{name: 'b', size: 'a'},
{name: 'a', size: 'b'},
{name: 'c', size: 'b'}
]

result = {
name: {
a: 3,
b:1,
c:1
},
size: {
a: 3,
b: 2
}
}
  • Odpowiedz
@bonus:

var data = [
    {name: 'a', size: 'a'},
    {name: 'a', size: 'a'},
    {name: 'b', size: 'a'},
    {name: 'a', size: 'b'},
    {name: 'c', size: 'b'}
];

function count(arr) {
    var results = {};


    arr.forEach( key => {
        results[key] = {};
``````
        data.map(o => o[key]).forEach(x => { results[key][x] = (results[key][x] || 0) + 1 });
    });
``````
    return results;
}
``````
count(['name', 'size']);
  • Odpowiedz