我有:
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}
是一种语法错误,并且它与您的其他代码不同(未提及 3
或 a
或 b
)。
但是您可以轻松地按特定属性对对象数组进行排序:
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了解详情。
关于javascript - Javascript 中具有多个值的动态键值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951295/