将元素添加到for循环中的对象中
Adding an element to an object in a 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++;
}
return obj;
}
addto("abbccc");
现在很明显,我不能在这里使用push()这样的方法。但我也无法将对象名称设置为我喜欢的位置的字符串:
obj.string[i] = cnt;
这就是我最初希望做的。有没有合适的方法来做这件事,这样我的输出就会是(对于给定的例子):
{"a":1, "b":2, "c":3}
对于字符串中的每个字符,您希望将该字符的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]]++;
}
请注意,使用此方向,不需要事先对数组进行排序。
这是另一种选择。如果你把它当作作业来做,那就不要用它。但作为一种心理锻炼,我留下了解决方案:
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}
相关文章:
- 循环遍历以数组为值的Javascript对象
- json对象中缺少对象循环
- 如何循环通过2个对象数组并通过匹配id进行合并
- 如何使用自定义辅助对象(handler)实现嵌套的每个循环
- 如何在javascript中循环并将JSON对象放入数组中
- 对象/数组和循环上的原型
- foreach对象循环添加到堆栈顶部
- javascript 中的框架对象循环是未定义的
- JavaScript 对象循环替换信息
- 为什么不是'这个对象循环不起作用
- 在一行中使用对象循环和数组循环
- 将从节点promise返回的对象循环到下一个.then
- 通过javascript对象循环将键转换为字符串
- 从对象循环中排除元素
- 如何在对象循环中跳过键
- javascript中的对象循环
- 动态地从对象循环键传递属性引用
- Javascript对象循环只是将最后迭代的元素追加到另一个对象
- 通过JSON对象循环后动态分配变量
- 从Javascript对象循环动态创建的表单.如何将数据保存回对象