Javascript 向for循环中的对象添加元素

Javascript 向for循环中的对象添加元素,javascript,object,for-loop,Javascript,Object,For Loop,我想用字符串的游程编码填充一个对象。使用数组通常非常简单,但我不太确定如何处理对象 function addto (string) { var string = string.split("").sort(); var cnt = 1; var obj = {}; for (i = 0; i < string.length; i ++) { if (string[i] === string[i+1]) cnt++; }

我想用字符串的游程编码填充一个对象。使用数组通常非常简单,但我不太确定如何处理对象

function addto (string) {  
   var string = string.split("").sort();
   var cnt = 1;
   var obj = {};

   for (i = 0; i < string.length; i ++) {
     if (string[i] === string[i+1])
       cnt++;

   }

   return obj;
}

addto("abbccc");
这就是我最初希望做的。是否有适当的方法来实现这一点,以便我的输出将是(例如给出的示例):


对于字符串中的每个字符,您希望将该字符的
obj
计数器递增一次。这是一个正确的方向

var obj = {};
for (i = 0; i < string.length; i ++) {
  // If the character has not been seen yet, set its counter to 0.
  obj[string[i]] = obj[string[i]] || 0;
  // Increment that character's count once.
  obj[string[i]]++;
}

谢谢乔,这正是我想要的,我会尽快接受!
{"a":1, "b":2, "c":3}
var obj = {};
for (i = 0; i < string.length; i ++) {
  // If the character has not been seen yet, set its counter to 0.
  obj[string[i]] = obj[string[i]] || 0;
  // Increment that character's count once.
  obj[string[i]]++;
}
var str = "abbccccddeeeeefgh"
var matches = str.match(/(.)\1*/g);
// matches = ["a", "bb", "cccc", "dd", "eeeee", "f", "g", "h"]
var counts = {};
for (i in matches)
  counts[matches[i][0]] = matches[i].length;
// counts = Object {a: 1, b: 2, c: 4, d: 2, e: 5, f: 1, g: 1, h: 1}