如何在javascript中定义锯齿状的关联数组?

时间:2016-08-17 13:42:24

标签: javascript arrays multidimensional-array

我正在尝试定义一个以这种方式工作的数组:

myArray[0] = 'Volkswagen'
myArray[0][0] = 'Crossfox'
myArray[1] = 'Ford'
myArray[1][0] = 'Focus'

我可以手工完成,但当然不是这样做的。 我有一个简单的数组:

arrayVolks = ['Crossfox', 'Up', 'Golf'];
arrayVolks[name] = 'Volkswagen';

我的问题是我不知道如何使用数组名称创建第一个数组,然后然后添加 数组

我在想这样的方式:

var myArray = [ arrayVolks[name]: {arrayVolks} ] 

(紧接着它的代码更像是伪代码而不是实际的javascript)

有可能吗?

谢谢你

2 个答案:

答案 0 :(得分:1)

你无法在javascript中创建这样的数组:

myArray[0] = 'Volkswagen'
myArray[0][0] = 'Crossfox'
myArray[1] = 'Ford'
myArray[1][0] = 'Focus'

如何使用Object呢?

var obj = {};
obj['Volkswagen'] = ['Crossfox', 'Up', 'Golf'];
obj['Ford'] = ['Focus'];

// get all brands
console.log(Object.keys(obj));

// print all "Volkswagen"
console.log(obj['Volkswagen']);
console.log(obj.Volskwagen);

答案 1 :(得分:1)

锯齿状数组是一个数组数组。

通过执行myArray[0] = 'Volkswagen',您将根数组的第一个元素设置为字符串,因此您已经违反了该结构。

备用数据结构可能会更好,但是如果你希望有一个锯齿状数组,你可以定义一个结构,其中每个嵌套数组的第一个元素是make,而其他元素将是模型。



var cars = [
    ['Volkswagen', 'Crossfox'],
    ['Ford', 'Focus']
];

console.log(cars[0][0]); //Volkswagen
console.log(cars[0][1]); //Crossfox