我阅读了一些关于三元运算符的SO论坛帖子,但我对这个示例仍然感到困惑:
var str = "I want to count";
var counts = {};
var ch, index, len, count;
for (index = 0; index < str.length; ++index) {
ch = str.charAt(index);
count = counts[ch];
counts[ch] = count ? count + 1 : 1; // TERNARY
}
我知道语法是condition ? expression1 : expression2
但我想练习并将三元运算符拆分成if-else。
我不知道条件应该是什么
counts[ch] = count // 这不是一个条件,它是在赋值...
count ? count + 1 : 1
- “我知道这个语法是条件?表达式1:表达式2” - 那么条件是count
吗?赋值发生在表达式的结果,而不是表达式的一部分。 - Davidcounts[ch] = count + 1
的东西,并且你说“我理解,加法由两个操作a + b
组成”,那么你不会假设在这种情况下a
是counts[ch] = count
,而只是count
,那么为什么你认为条件是counts[ch] = count
而不仅仅是count
呢? - t.niesecount
不是false
,指的是非0、空值或未定义。 - zer00ne