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