【问题标题】:Traversing Object to return value遍历对象返回值
【发布时间】:2020-08-17 15:05:20
【问题描述】:

我有一个我正在寻找的价值。我想将我正在搜索的术语与key 的值相匹配,并返回与同一对象关联的name 键的值。

这是一个示例对象:

{
  "test1": {
    "functions": {
      "function1": {
        "inputs": [
          {
            "key": "key1",
            "name": "name1"
          },
          {
            "key": "key2",
            "name": "name3"
          },
          {
            "key": "key3",
            "name": "name3"
          }
        ]
      },
      "function2": {
        "inputs": [
          {
            "key": "key4",
            "name": "name4"
          },
          {
            "key": "key5",
            "name": "name5"
          },
          {
            "key": "key6",
            "name": "name6"
          }
        ]
      }
    }
  }
}

假设我想找到输入的namekeykey4。我将如何在 javascript 中实现这一点?

【问题讨论】:

  • 欢迎来到 Stack Overflow!请使用tour(您将获得徽章!)并通读help center,尤其是How do I ask a good question? 您最好的选择是进行研究,search 以获取有关 SO 的相关主题,然后试一试. 如果您在进行更多研究和搜索后遇到困难并且无法摆脱困境,请发布您的尝试minimal reproducible example,并具体说明您遇到的问题。人们会很乐意提供帮助。
  • 您可以使用Object.keys() 或更新的Object.entries() 分别迭代对象键或键/值对。 (developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…) 请参阅inObject.prototype.hasOwnProperty() 之间的区别,以了解有关这一点的警告。对于数组,Array.prototype.filter()Array.prototype.find() 应该为您提供这部分内容。 (也与Object.keys()/Object.entries()结合使用。)

标签: javascript arrays object traversal


【解决方案1】:

您只需迭代"inputs" 数组中的各个对象并检查键属性是否为“key4”

var inputs = []; // you would have to get the individual lists
inputs.forEach(function (input) {
    if (input['key'] === 'key4') {
        // do something with input['name'];
    }
});

您最好创建一个函数,返回 input['name']

【讨论】:

    猜你喜欢
    • 2020-01-06
    • 2019-07-01
    • 2018-08-04
    • 2021-10-05
    • 2011-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-24
    相关资源
    最近更新 更多