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

Dynamic Key Value Array with Multiple Values in Javascript

我有:

var data = [];

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

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

这可能吗?我试过了,它抱怨“无法设置未定义的 属性 'part1'”

然后我想按第 1 部分的值对数据数组进行排序,因此:

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};

我之所以要这样做是因为排序完成后,我需要更改

数据[i].part2

排序后去别的地方!

你可以这样做:

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} 是一个语法错误,它与您的其他代码不一样(没有提到 3ab).

但是您可以轻松地按特定的方式对对象数组进行排序 属性:

data.sort(function (a, b) {
    return (a.part1 > b.part1) - (a.part1 < b.part1);
});

详情见https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort