【发布时间】:2016-09-08 17:56:48
【问题描述】:
我正在尝试计算字母 x 和字母 o 在字符串中出现的所有次数,如果它们出现的次数相同,则返回 true,否则返回 false。
我已经完成了这个问题,但是当使用三元语句时,它迫使我创建一个我不需要的额外条件,因为你似乎需要在三元语句中进行 3 次操作,所以我只计算每次出现其他内容时一个字符串。有什么方法可以在不创建不必要条件的情况下使用三元语句,还是必须使用 if 语句?
function ExOh(str) {
var ex = 0
var oh = 0
var other = 0
for (var i = 0; i < str.length; i++) {
str[i] === "x" ? ex++ : str[i] === "o" ? oh++ : other++
}
return ex === oh
}
console.log(ExOh("xooabcx$%x73o"));
console.log(ExOh("xooxxo"));
console.log(ExOh("x"));
console.log(ExOh(""));
//wouldn't let me just have one statement after the ternary so I created the other variable.
【问题讨论】:
-
这是一个应该在堆栈代码审查中的问题。首先,如果您尝试计算字符,您可以使用 linq 或 regex,这将减少代码,但如果您不喜欢您的三元组,请使用 if。
标签: javascript if-statement ternary