首页 > 解决方案 > 如何在 JSON 中获取玩家物品数组中的所有非拥有物品

问题描述

我想从我尝试过的玩家物品数组中获取所有不拥有的物品

var players = {
"player1": {
    "items": [{
        "item1": {
            "owned": false,
            "price": 3000,
        },
        "item2": {
            "owned": true,
            "price": 3000,
        }
    }]
}
}

Object.keys(players).forEach(player => {
for(var i =0; i < players[player].items.length; i++) {
    var not_owned = players[player].items.filter(item => {return item.owned === false});
    console.log(not_owned.length);
}
});

但它没有给我任何我试图查看长度的东西,它给了我 0,

我试图 console.log 它没有长度,它给了我未定义的任何想法?

标签: javascript

解决方案


您需要获取内部项目对象值,然后对其进行过滤

var players = {
"player1": {
    "items": [{
        "item1": {
            "owned": false,
            "price": 3000,
        },
        "item2": {
            "owned": true,
            "price": 3000,
        }
    }]
}
}

Object.keys(players).forEach(player => {
for(var i =0; i < players[player].items.length; i++) {
    var not_owned = Object.entries(players[player].items[i]).filter(([key, item]) => {return item.owned === false});
    console.log(not_owned.length);
}
});


推荐阅读