js matriz de objetos de operación, juzgue cuando hay múltiples valores de atributo iguales

En la matriz de arr, hay varios grupos idénticos. Quiero calcular cuántos grupos hay en total. Cuando cambia el número de grupo, groupNum se incrementa en 1 y el número de grupo se agrega a la matriz.

var arr = [
    {name: 'a1', group: 1},
    {name: 'b1', group: 1},
    {name: 'c1', group: 1},
    {name: 'd1', group: 1},
    {name: 'a2', group: 2},
    {name: 'b2', group: 2},
    {name: 'c2', group: 2},
    {name: 'd2', group: 2},
    {name: 'a3', group: 3},
    {name: 'b3', group: 3}
];

var newArr = []; // 存放 group 的新数组
var lastGroup= -1; // 上次group 属性值,用来判断
var groupNum = 0; // 一共几组

for (let i = 0; i < arr.length; i++) {
    let group = arr[i].group;
    if (lastGroup != group) {
        newArr.push(group);
        groupNum ++;
        lastGroup = group;
    }
}
console.log(newArr); // [1, 2, 3]
console.log(groupNum); // 3

 

Supongo que te gusta

Origin blog.csdn.net/qq_40015157/article/details/113868389
Recomendado
Clasificación