首页 > 解决方案 > 解析包含 JSON 元素的对象数组

问题描述

首先让我分解数据:

我有一个包含 3 个元素的数组...

每个元素都是一个对象,具有namearrayOfJSON作为键...

里面arrayOfJSON可能有任意数量的 JSON 字符串作为元素......

我需要捕获Alex@gmail数组messarrayOfJSON

结果应该是:

position_of_mess = [0,2]

position_of_arrayOfJSON_for_position_of_mess_0 = [0]

position_of_arrayOfJSON_for_position_of_mess_2 = [1]

我现在正在尝试什么:

For 循环遍历混乱,for 循环遍历 arrayOfJSON 和 JSON.parse() 用于 Alex@gmail。我要花几分钟来更新。

如果你们都认为它可以在没有 for 循环的情况下完成,请告诉我。

更新:快到了

mess = [{
    "name": "user1",
    "arrayOfJSON": `[{"email":"Alex@gmail","hobby":"coding"},{"email":"bob@gmail","hobby":"coocking"}]`
  },
  {
    "name": "user2",
    "arrayOfJSON": `[{"email":"Chris@gmail","hobby":"coding"},{"email":"bob@gmail","hobby":"coocking"}]`
  },
  {
    "name": "user3",
    "arrayOfJSON": `[{"email":"bob@gmail","hobby":"coocking"},{"email":"Alex@gmail","hobby":"coding"}]`
  }
]


console.log(mess)

for (i = 0; i < mess.length; i++) {
  console.log(JSON.parse(mess[i].arrayOfJSON))
  
  for (m = 0; m < (JSON.parse(mess[i].arrayOfJSON)).length; m++) {
    console.log("almost")
    console.log((JSON.parse(mess[i].arrayOfJSON))[m])
  } 
} 

标签: javascriptarrays

解决方案


mess = [{
    "name": "user1",
    "arrayOfJSON": `[{"email":"Alex@gmail","hobby":"coding"},{"email":"bob@gmail","hobby":"coocking"}]`
  },
  {
    "name": "user2",
    "arrayOfJSON": `[{"email":"Chris@gmail","hobby":"coding"},{"email":"bob@gmail","hobby":"coocking"}]`
  },
  {
    "name": "user3",
    "arrayOfJSON": `[{"email":"bob@gmail","hobby":"coocking"},{"email":"Alex@gmail","hobby":"coding"}]`
  }
]


console.log(mess)
holdMessPosition = []

for (i = 0; i < mess.length; i++) {

  var pos = (JSON.parse(mess[i].arrayOfJSON)).map(function(e) {
      return e.email;
    })
    .indexOf("Alex@gmail");
  console.log("user position is " + pos);

  if (pos !== -1) {
    holdMessPosition.push(i)
  }

}

console.log(holdMessPosition)


推荐阅读