Javascript中具有多个值的动态键值数组

时间:2015-08-11 20:24:33

标签: javascript arrays key-value

我有:

var data = [];

我想像这样动态创建字符串数组:

for(var i=0; i < files.length; i++){
    data[i].part1 = "abc";
    data[i].part2 = "def";
    data[i].part3 = "ghi"; 
}

这可能吗?我尝试了它并抱怨'无法设置'未定义'的属性'part1'

然后我想按part1值对数据数组进行排序:

data[0] = {3,a,b};
data[1] = {1,a,b};
data[2] = {5,a,b};

变为:

data[0] = {1,a,b,c};
data[1] = {3,a,b,c};
data[2] = {5,a,b,c};

我想这样做的原因是因为排序完成后,我需要更改

data [i] .part2

<\ n>排序后的其他内容!

1 个答案:

答案 0 :(得分:2)

你可以这样做:

for (var i = 0; i < files.length; i++) {
    data[i] = {};
    data[i].part1 = "abc";
    data[i].part2 = "def";
    data[i].part3 = "ghi"; 
}

data[i]设置为空对象,然后逐个填充。或

for (var i = 0; i < files.length; i++) {
    data[i] = {
        part1: "abc",
        part2: "def",
        part3: "ghi"
    };
}

一次将data[i]设置为完整对象。

我不理解data[0] = {3,a,b};部分:{3,a,b}是一种语法错误,它与您的其他代码(它没有提及{{}相似1}}或3a)。

但您可以通过特定属性轻松对对象数组进行排序:

b

有关详细信息,请参阅https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort