[英]Find value of an object in json, node.js
我需要一種方法來查找輸入的相應名稱的殺戮和死亡(等),如果該名稱不在 object 中,我也需要它到 output 一些東西。
像這樣的東西:
if (medic does not have(name)) return;
const kills = medic.(name).kills
樣品 JSON:
{
"assault": {
"general": {
"kills": 1134,
"deaths": 1122,
"abc": "123"
},
"list": {
"A": {
"name": "name1",
"kills": 12,
"deaths": 120
},
"B": {
"name": "name2",
"kills": 23,
"deaths": 53
}
}
},
"support": {
"general": {
"kills": 123,
"deaths": 11232,
"abc": "11233"
},
"list": {
"A": {
"name": "name4",
"kills": 12,
"deaths": 120
},
"B": {
"name": "name5",
"kills": 23,
"deaths": 53
}
}
}
}
首先清理你的數據以獲得一個很好的名稱和信息列表:
const listOfNames = [...Object.values(data.assault.list), ...Object.values(data.support.list)]
然后使用該列表上的find
方法搜索名稱,如果搜索返回undefined
,則使用"Not Found"
的備份:
const search = (name) => listOfNames.find(item => item.name===name) || "Not Found"
然后您可以在其他地方使用該搜索 function :
console.log(search("name2"))
給出
在此處查看實際操作: https://repl.it/@LukeStorry/62916291
您是否需要總結攻擊和支持,或者您需要的只是其中之一? 你的數據總是在同一個形狀上嗎? 我將假設它是,並且我將同時提供總和和個人:
const data = // your JSON here
const getAssaultKills = name => (data.assault.list[name] || {kills: 0}).kills
const getSupportKills = name => (data.support.list[name] || {kills: 0}).kills
const getTotalKills = name =>
getSupportKills(name) + getAssaultKills(name)
getTotalKills("A") // => 24
getTotalKills("C") // => 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.