将哈希值存储在另一个数组中

时间:2017-05-01 02:17:21

标签: javascript arrays key-value

我有一个键值对列表,我试图将键存储在另一个数组中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)的属性

2 个答案:

答案 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++;
        }
    }    
}