我有一个键值对列表,我试图将键存储在另一个数组中N次。
我正在努力解决逻辑问题,如果我迭代list_of_objects
我无法看到跟踪哪些键值已被分配的方法。
var kv={"a":2,"b":1,"c":1};
var list_of_objects=[bob,bill,jane,joe];//these are objects
目标
bob.kv="a"
bill.kv="a"
jane.kv="b"
joe.kv="c"
回复评论的注意事项:kv
是对象bob(或bill,或jane或joe)的属性
答案 0 :(得分:1)
您可能想尝试Object.keys()
Object.keys(kv).forEach(function(key) {
var val = kv[key];
while(val-- > 0) {
var obj = objects.shift();
obj.kv = key;
console.log(obj)
}
});
答案 1 :(得分:1)
与@ MatUtter的答案类似但不会改变list_of_objects
数组:
var index = 0;
for (var key in kv) {
if (kv.hasOwnProperty(key)) {
var val = kv[key];
while (val-- > 0) {
list_of_objects[index].kv = key;
index++;
}
}
}