簡體   English   中英

如何在 JSON 中獲取玩家物品數組中所有未擁有的物品

[英]How to get all not owned items in a player items array in 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,它給了我未定義的任何想法?

您需要獲取內部項目對象值,然后對其進行過濾

 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); } });

你不需要在那里for循環。 現在,對於forEach的每次迭代, forEach將包含您想要的該播放器的項目。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM