javascript映射数组对象

时间:2017-09-29 00:15:20

标签: javascript object for-in-loop

我有以下数组对象:如何循环遍历它并单独获取test和body的值?在JavaScript中?使用2 for循环,但没有安慰?

myobj: {
  foo: [
    {
      test: "jhaskd",
      body: "haskjdh",
    }
  ],
  bar: [
    {
      test: "jhaskd",
      body: "haskjdh",
    }
  ],
}

3 个答案:

答案 0 :(得分:1)

喜欢这个?

let myobj =  {
  foo: [
    {
      test: "jhaskd",
      body: "haskjdh",
    }
  ],
  bar: [
    {
      test: "jhaskd",
      body: "haskjdh",
    }
  ],
}

let level_1_keys = Object.keys(myobj)
console.log(level_1_keys) //['foo', 'bar']
let tests = level_1_keys.map(function(l_1_key){
    return myobj[l_1_key][0]["test"]
})
let bodies = level_1_keys.map(function(l_1_key){
    return myobj[l_1_key][0]["body"]
})
console.log(tests) //['jhaskd','jhaskd']
console.log(bodies) //['haskjdh', 'haskjdh']

答案 1 :(得分:0)

以下是一个例子:

Image>Mode>Indexed

更新

“而不是测试[]和body [] - 我需要foo [],bar []”

Layers>Dockable dialog>Colormap

如果有什么不清楚的话 - 随意问。

答案 2 :(得分:0)

有很多方法可以做到这一点,但如果你真的不关心父对象的密钥,那么应该这样做:

for (let list of Object.values(myobj)) {
  for (let obj of list) {
    console.log(obj.test)
    console.log(obj.body)
  }
}

这假定父对象中的每个元素都是一个数组,但如果不是这种情况,则只需添加if - 子句即可。见https://repl.it/LoL1