簡體   English   中英

在 json、node.js 中查找 object 的值

[英]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.

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