【发布时间】:2015-06-28 02:55:50
【问题描述】:
和以前一样,我到处寻找答案,我只是一个初学者,我正在努力从中学习,而不仅仅是得到答案。
var voweler = function (str) {
var strArr = str.split('')
var obj = {};
for (var i = 0; i < strArr.length; i++) {
if (strArr[i] == 'a') {
obj.a = 0;
obj.a++;
} else if (strArr[i] == 'e') {
obj.e = 0;
obj.e++;
} else if (strArr[i] == 'i') {
obj.i = 0;
obj.i++;
} else if (strArr[i] == 'o') {
obj.o = 0;
obj.o++;
} else if (strArr[i] == 'u') {
obj.u = 0;
obj.u++;
}
};
return obj;
}
voweler("This is a test")
//returns this which is wrong. Object {i: 1, a: 1, e: 1}
【问题讨论】:
-
还有什么问题?
-
为什么不计算第二个字母 i?
-
密切注意你使用的逻辑 - 用简单的英语大声朗读真的很有帮助:“如果这个字符是字母 i,将 obj.i 设置为零,然后递增”。
-
@adeneo 在第 8 行,我从未见过这样的东西,我不明白它在做什么。
标签: javascript function object for-loop