【发布时间】:2017-09-16 14:39:32
【问题描述】:
我想向数组添加值。但相同的值可能会更新。例如我的数组是
[{"abc1":"123456"},{"abc2":"123456"}]
何时再次添加是 abc1。它可能会更新。例如在正常情况下
[{"abc1":"123456"},{"abc2":"123456"},{"abc1":"123456"}]
但我想要
[{"abc2":"123456"},{"abc1":"123456"}]
我的代码
var categories = [],
arrIndex = {};
addOrReplace({"abc1":"125"});
addOrReplace({"abc2":"126"});
addOrReplace({"abc1":"127"});
addOrReplace({"abc3":"129"});
function addOrReplace(object) {
var index = arrIndex[object[0]];
console.log("index:"+object[0]);
if(index === undefined) {
index = categories.length;
}
arrIndex[object[1]] = index;
categories[index] = object;
}
console.log(categories);
它没有显示正确的答案。 它显示
[{"abc3":"129"}]
我想要
[{"abc2":"126"},{"abc1":"127"},{"abc3":"129"}]
这怎么可能?请帮帮我?
【问题讨论】:
-
所以如果我理解正确,如果存在带有键
abc1的对象,请将其删除并推送新值。我说的对吗? -
如果数组中的对象只有一个键,我建议对象多于数组。值将在 Object 中被覆盖
-
@Rajesh 是的,你是对的。
-
@Rayon 怎么可能?
-
@joe —
var obj = { a: 1, b: 2 }; obj.a = 3; console.log(JSON.stringify(obj));
标签: javascript html arrays node.js