JavaScript:将包含字符串的数组数组转换为包含对象的数组数组

时间:2017-02-27 14:53:49

标签: javascript arrays string object

我知道这是一个简单的问题...但我已经堆积了。我想将包含字符串的数组数组转换为包含对象的数组数组。

what_i_have = [
  [
    "{"point1":"recommendation number 1 text"}",
    "{"point2":"recommendation number 2 text"}"
  ],
  [
    "{"point1":1.5}","{"ponit2":2}"
  ],
  [
    "{"point1":1.5}","{"point2":2}"
  ]
]

我想得到这个:

what_i_want = [
  [
    {"point1":"recommendation number 1 text"}, 
    {"point2":"recommendation number 2 text"}
  ],
  [
    {"point1":1.5},{"ponit2":2}
  ],
  [
    {"point1":1.5},{"point2":2}
  ]
]
我试过几种方法。使用JSON.parse()数组元素的最后一种方法。但总有一些事情我做错了。 任何建议都将是真正受欢迎的。提前谢谢!

3 个答案:

答案 0 :(得分:0)

我认为Array.prototype.map就是你想要的,即

what_i_want  = what_i_have.map(arr => arr.map(str => JSON.parse(str)))

代码示例中的"存在一些问题,但忽略map应该执行您想要的操作。

答案 1 :(得分:0)

像这样使用JSON.parsemap

var result = what_i_have.map(function(subarr) {
    return subarr.map(function(str) {
        return JSON.parse(str);
    });
});

答案 2 :(得分:0)

使用JSON.parse

进行循环

what_i_have = [
  [
    '{"point1":"recommendation number 1 text"}', '{"point2":"recommendation number 2 text"}'
  ],
  [
    '{"point1":1.5}', '{"ponit2":2}'
  ],
  [
    '{"point1":1.5}', '{"point2":2}'
  ]
]
for (var i = 0; i < what_i_have.length; i++) {
  var arr = what_i_have[i];
  for (var j = 0; j < arr.length; j++) {
    arr[j] = JSON.parse(arr[j]);
  }
}
console.log(what_i_have);