【问题标题】:Convert three arrays into a nested object将三个数组转换为嵌套对象
【发布时间】:2018-03-08 14:48:40
【问题描述】:

我想创建一个嵌套对象,像这样

var obj; 
obj = [
    {
        "a": {
            "A" : "aA",
            "B" : "aB",
            "C" : "aC"
        }

    },
    {
        "b": {
            "A" : "bA",
            "B" : "bB",
            "C" : "bC"
        }

    },
    {
        "c": {
            "A" : "cA",
            "B" : "cB",
            "C" : "cC"
        }

    },      
]


来自三个这样的数组

var arr1 = ["a","b","c"]
var arr2 = ["A","B","C"]
var arr3 = [["aA","aB","aC"],["bA","bB","bC"], ["cA","cB","cC"]]

有没有使用 lodash 或 es6 的简单方法?我基本上是使用另一个函数从arr1arr2 生成arr3。但这在这里无关紧要,但是如果我要创建这样多个数据数组并且我想通过组合数组来生成类似 JSON 的对象,那么方便的方法是什么?是否有任何关于从多个数组(可能超过 3 个数组)创建多级嵌套对象的文档?

我的努力...

arr1.forEach((item)=>{
    arr2.forEach((prop)=>{
        obj[item] = {}
        obj[item][prop] =  prop
    })
})

【问题讨论】:

  • 现在我们知道你想要什么,但我们不知道你做了什么来解决你的问题。
  • 我投票结束这个问题,因为这个问题没有任何努力的迹象。这是一项要求,而不是问题陈述。
  • @Rajesh:通常,出于这个原因,我们会使用“太宽泛”。
  • 我们不鼓励那些简单地断章取义地陈述问题的帖子,并希望社区能够解决它。假设您尝试自己解决并陷入困境,如果您写下您的想法和您无法弄清楚的内容,这可能会有所帮助。它肯定会为您的帖子带来更多答案。在此之前,该问题将被投票关闭/否决。
  • 我不是在问确切的解决方案,我只是在问任何我可以自己弄清楚如何去做的来源。请再次阅读问题。问题陈述是解决此类复杂问题的方法。如果您确信,请取消投票。谢谢

标签: javascript arrays object ecmascript-6 lodash


【解决方案1】:

试试这个:

  var arr1 = ["a","b","c"];
  var arr2 = ["A","B","C"];
  var arr3 = [["aA","aB","aC"],["bA","bB","bC"], ["cA","cB","cC"]];
  var obj=[]; //initializing empty obj array
  for (i=0;i<arr1.length;i++){ // loop for creating outer objects
  var insideObj = {}, sampleObj={};
  for (j=0;j<arr2.length;j++) // loop for creating inner objects
    insideObj[arr2[j]]=arr3[i][j]; // creating inner objects like {"A":"cA","B":"cB","C":"cC"}
  sampleObj[arr1[i]]= insideObj; // assigning inner object as value of outer object
  obj.push(sampleObj); // pushing outer object to my obj array
}

【讨论】:

    猜你喜欢
    • 2015-03-26
    • 2019-01-31
    • 1970-01-01
    相关资源
    最近更新 更多