在数组或对象中查找值

Find value in array or object

我想在带有路径的数组中找到一个值。

示例:

var object = {
              "value1": [
                {
                  "valueinarray": "myvalue"
                }
              ]
            }
var array = [
              {
                "value1": {
                  "value2": [
                    {
                      "valueinarray": "myvalue"
                    }
                  ]
                }
              }
            ]

现在我想通过类似 value1[0] 或 [0].value2[0]

的路径获取 myvalue

我问了一个类似的问题,但它不适用于数组:

如果您正在使用如下 JS 对象,那么它是一个不正确的对象

var array = [ "value1": { "value2": [ "valueinarray": "myvalue" ] } ]

对象可以重构为

var array = [ { "value2": [ {"valueinarray": "myvalue"} ] } ]

并且可以如下获取值

array[0].value2[0]

不确定这是否是你的问题。

你给数组赋值的语法是错误的。您需要使用大括号 { } 将键值对放入数组中。例如:value2: [ { "valueinarray": "myvalue"} ].

var object = {
              "value1": [
                {
                  "valueinarray": "myvalue"
                }
              ]
            }

console.log(object.value1[0].valueinarray);

var array = [
              {
                "value1": {
                  "value2": [
                    {
                      "valueinarray": "myvalue"
                    }
                  ]
                }
              }
            ]
            
console.log(array[0].value1.value2[0].valueinarray);

console.log(object.value1[0].valueinarray);
var array = [{"value2": ["myvalue"]}];
console.log(array[0]['value2'][0]);

cmgchess 的评论是解决方案

const lodash = require("lodash")

lodash.get(object, path)