js操作オブジェクト配列、同じ属性値が複数あるかどうかを判断する

arr配列には、複数の同一のグループがあります。合計でいくつのグループがあるかを計算したいと思います。グループ番号が変わると、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