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

标签 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’”

然后我想按第 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了解详情。

关于javascript - Javascript 中具有多个值的动态键值数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31951295/

相关文章:

python - 按值将 Python 3 字典排序回字典而不是元组列表

key-value - LevelDB 快照能否在数据库关闭后继续存在?

javascript - 如何检测 XMLHttpRequest 是否支持 responseType = "arraybuffer"?

javascript - 下划线多重排序

javascript - 在mysql sequelize中查找使用相同字段和不同值的所有数据

python - 如何在 numpy 数组列中找到最大值?

PhP:合并具有匹配键的数组并删除/删除额外的不匹配值

javascript - Angular2 获取触发事件的元素

javascript - 将 native javascript 对象与 jQuery 进行比较

c - 当输入是阶数大于 2 的矩阵时,为什么会出现段错误?