在Javascript中转换多维深度数组中的二维数组

在Javascript中转换多维深度数组中的二维数组,javascript,jquery,arrays,multidimensional-array,Javascript,Jquery,Arrays,Multidimensional Array,我有一个Javascript数组,如下所示: [ "values": [ "Gray", "Beige", "Black" ], "values": [ "Large", "Small", "Medium" ] ] 我需要在以下方面对其进行转换: [ "Gray": [ "Large": 0, "Small": 0,

我有一个Javascript数组,如下所示:

[
    "values": [
        "Gray",
        "Beige",
        "Black"
    ],  
    "values": [
        "Large",
        "Small",
        "Medium"
    ]
]
我需要在以下方面对其进行转换:

[
    "Gray": [
        "Large": 0,
        "Small": 0,
        "Medium": 0
    ],
    "Beige": [
        "Large": 0,
        "Small": 0,
        "Medium": 0
    ],
    "Black": [
        "Large": 0,
        "Small": 0,
        "Medium": 0
    ]:
] 
主要的复杂性是第一个数组可以有许多
数组,我需要它的值成为新数组的索引,深度。我确信这可以通过使用循环结构来实现,但我已经厌倦了尝试


我接受任何解决方案,使用Javascript和/或jQuery代码:)。

首先,这两个数组都是无效的。在JavaScript中,数组中不能有键

你要找的不是一个物体就是一个物体

因此,第二个无效数组作为对象中的对象是有效的:

{
    Gray:{
        Large: 0,
        Small: 0,
        Medium: 0
    },
    Beige:{
        Large: 0,
        Small: 0,
        Medium: 0
    },
    Black: {
        Large: 0,
        Small: 0,
        Medium: 0
    }:
}
问题是,在javascript对象上迭代并不简单,在这种情况下并不可取

所以我会在你的一级数组中绘制一张地图,就像这样

var myMap = new Map();

var keyString = 'Gray'

// setting the values
myMap.set(keyString, { Large:0, Small:0, Medium:0 });
然后你可以在地图上用一个

for (var [key, value] of myMap) {
  console.log(key + ' = ' + value);
}

请检查

请显示您尝试的无效内容。这不是免费的代码编写服务。这里的想法是让我们帮助修复你的代码你没有这样的数组。它不是数组,也不是对象。这不是有效的JavaScript数组。JavaScript数组不能有键。谢谢,这是一个非常有用的答案。我很高兴,如果您发现它回答了您的问题,我邀请您将其标记为所选答案!:)