【问题标题】:Find value of an object in json, node.js在 json,node.js 中查找对象的值
【发布时间】:2020-11-05 00:51:32
【问题描述】:

我需要一种方法来找到输入的相应名称的杀戮和死亡(等),如果名称不在对象中,我也需要它输出一些东西。

类似这样的:

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

【问题讨论】:

  • 所以你输入一个像“name4”这样的名字,它会搜索攻击和支持对象,进入他们的list字段,然后搜索?
  • 请展示您的尝试,以及您为自己解决此问题所做的任何研究。
  • .includes().find().filter()遍历Object.keys( ... )或另一个数组以检查名称是否存在。

标签: javascript node.js arrays json


【解决方案1】:

首先清理您的数据以获得一个不错的名称和信息列表:

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"

然后你可以在其他地方使用那个搜索功能:

console.log(search("name2"))

在这里查看它的实际效果: https://repl.it/@LukeStorry/62916291

【讨论】:

    【解决方案2】:

    您是否需要总结攻击和支持,或者您需要的只是其中之一?你的数据总是在同一个形状上吗?我将假设它是,并且我将同时提供总和和个人:

    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
    

    【讨论】:

      猜你喜欢
      • 2018-03-21
      • 1970-01-01
      • 2020-07-22
      • 2013-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-02-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多