在js中将嵌套数组转换为嵌套obj

时间:2019-11-06 17:46:58

标签: javascript

我正在尝试将嵌套数组转换为嵌套obj: 例如,

let ip_array = [
                 ["fdsfasdf","hghfhgh"],
                 ["fsdf","hjghhjhj"],
                 ["fdfss","hjghh"]
               ]

预期o / p:

let new_array = [
                  {"fsdfdsf":""fgdfgdfg},
                  {"dfdsd":"jhjghj"},
                  {"dfsddfds":"hghfh"}
                ]

3 个答案:

答案 0 :(得分:1)

这可以通过JavaScript的Array.map()完成。

首先,您使用Array.map()遍历输入数组,然后使用computed property names设置每个对象的键/属性来返回结果。

const arr = [["fdsfasdf","hghfhgh"],["fsdf","hjghhjhj"],["fdfss","hjghh"]];

const res = arr.map(element => {
  return {
    [element[0]]: element[1]
  };
});

console.log(res);

答案 1 :(得分:0)

您可以尝试

let ip_array = [["fdsfasdf","hghfhgh"],["fsdf","hjghhjhj"],["fdfss","hjghh"]]
let myObj    = ip_array.map((a, k) => {

                   return { [a[0]]: a[1] };
               }) 

答案 2 :(得分:0)

使用更新的Object.fromEntries()方法的另一种方法。

警告::这是一种非常新的方法,在2019年撰写此答案时仍处于规范草案中。它可能与跨浏览器不兼容。

let ip_array = [
                 ["fdsfasdf","hghfhgh"],
                 ["fsdf","hjghhjhj"],
                 ["fdfss","hjghh"]
               ]

let new_array = ip_array.map((arr)=> Object.fromEntries([arr]));

console.log(new_array);