使用节点 js / javascript 获取嵌套值

getting nested value by using node js / javascript

let data =
 [
    {
        "testingNewValue": {
            "en-US": "hello"
        }
    },
    {
        "testingNewValue": {
            "hi-IN": "hello "
        }
    },
    {
        "testingNewValue": {
            "us": "dummy"
        }
    },
    {
        "testingNewValue": {
            "xp-op-as": "value for testing"
        },
        "locationField": {
            "en-US": {
                "lat": 19.28563,
                "lon": 72.8691
            }
        }
    }
]

const value = Object.fromEntries(Object.entries(data).map(el=>(el[1]=Object.values(el[1])[0], el)))
    console.log(value);

我试图通过使用 object.fromEntries n object.entries 从数据 json 中获取价值,但它并没有像我期望的那样工作,因为我期望的值为 [=13] =]

预期

{
  {
    testingNewValue:"hello"
  },
  {
    testingNewValue:"hello"
  },
  {
    testingNewValue:"dummy"
  },
  {
    testingNewValue:"value for testing",
    locationField:{
      lat: 19.28563,
      lon: 72.8691
    }
  }
}

但我得到“0”、“1”、“2”,正如您在代码片段中看到的那样,因为我想从数据中删除所有“en-US”、“hi-In”n

我怎样才能得到我的期望值

假设你实际上是在一个数组之后(因为你当前的预期结果不是一个有效的结构),你应该获取每个内部对象的整体,然后使用 [=11= 构建你的新对象] 在映射每个条目之后,而不是获取整个 data 数组的全部内容,这会导致索引出现在您当前的结果中。下面的代码假定您在每个内部对象中都有一个值,并且每个值都是一个对象:

const data = [ { "testingNewValue": { "en-US": "hello" } }, { "testingNewValue": { "hi-IN": "hello " } }, { "testingNewValue": { "us": "dummy" } }, { "testingNewValue": { "xp-op-as": "value for testing" }, "locationField": { "en-US": { "lat": 19.28563, "lon": 72.8691 } } } ];

const value = data.map(el=>
  Object.fromEntries(Object.entries(el).map(([k, v]) => [k, Object.values(v)[0]]))
);
console.log(value);