在Javascript中转换多维深度数组中的二维数组
我有一个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,
[
"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数组不能有键。谢谢,这是一个非常有用的答案。我很高兴,如果您发现它回答了您的问题,我邀请您将其标记为所选答案!:)