js 操作对象数组,多个相同属性值时进行判断

arr数组中,有多个相同的group,我想计算一共有几个组,组号变化时 groupNum 加1,并把组号添加到数组。

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

猜你喜欢

转载自blog.csdn.net/qq_40015157/article/details/113868389