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