var str = 'abcdacbabcbababcbabcabd' var obj = {} for (var i = 0; i < str.length; i++) { debugger // obj[i] = i console.log(str[i]) // console.log(i) // console.log(obj) obj[str[i]] } console.log(obj) 为什么没有向obj 里面添加
时间: 2023-06-26 22:04:29 浏览: 164
代码中的 `obj[str[i]]` 没有赋值操作,所以没有向 `obj` 对象中添加属性。如果想要将 `str` 中每个字符出现的次数统计到 `obj` 中,可以修改代码如下:
```
var str = 'abcdacbabcbababcbabcabd';
var obj = {};
for (var i = 0; i < str.length; i++) {
var char = str[i];
if (obj[char]) {
obj[char]++;
} else {
obj[char] = 1;
}
}
console.log(obj);
```
这样就能输出 `obj` 对象中每个字符出现的次数了。
相关问题
var str = 'abcdacbabcbababcbabcabd' var obj = {} for (var i = 0; i < str.length; i++) { // obj[i] = i console.log(str[i]) // console.log(i) // console.log(obj) [str[i]] } console.log(obj) 这段语法的错误
这段代码中存在语法错误和逻辑错误:
1. 在 `for` 循环内部,没有对 `obj` 对象的属性进行赋值,语句 `[str[i]]` 没有任何实际作用。
2. `obj[i] = i` 语句也没有实际作用,因为 `i` 只是一个计数器,不应该作为对象的属性名。
下面是修正后的代码:
```
var str = 'abcdacbabcbababcbabcabd';
var obj = {};
for (var i = 0; i < str.length; i++) {
var char = str[i];
if (!obj[char]) {
obj[char] = 1;
} else {
obj[char]++;
}
}
console.log(obj);
```
这段代码的作用是统计字符串 `str` 中每个字符出现的次数,并将结果存储在 `obj` 对象中。在循环内部,首先判断当前字符是否已经存在于 `obj` 对象中,如果不存在,则将其作为新属性添加到对象中,初始值为 `1`;如果已经存在,则将该属性的值加1。最后输出 `obj` 对象,即为每个字符出现的次数。
var str = 'abcdacbabcbababcbabcabd' 怎么放进对象变成key值
可以使用 JavaScript 中的对象来实现将字符串中的字符作为对象的键(key)的操作。具体代码如下:
```
var str = 'abcdacbabcbababcbabcabd';
var obj = {};
for (var i = 0; i < str.length; i++) {
var char = str[i];
if (!obj[char]) {
obj[char] = 1;
} else {
obj[char]++;
}
}
console.log(obj);
```
这段代码定义了一个空对象,然后遍历字符串中的每个字符,将字符作为对象的键,如果该键不存在,则将其值初始化为1;否则将其值加1。最后输出对象,即可得到每个字符在字符串中出现的次数。
阅读全文