【发布时间】:2019-07-30 01:20:10
【问题描述】:
我注意到 .some() 数组方法和三元运算符的奇怪行为。
当整数(计数)必须在每个有和没有大括号的情况下递增时,它的行为会有所不同。
虽然,console.log 在每次迭代中都会显示正确的真值。
有什么想法吗?
> let arr = ['011','202','3300']
undefined
> let count = 0;
undefined
> arr.some(k => k.includes('0') ? count++ : null);
true
> count;
2 // is not correct
> count = 0;
0
> arr.some(k => {k.includes('0') ? count++ : null});
false
> count;
3 // correct
>
> arr.some(k => {k.includes('0') ? console.log('true') : null});
true
true
true
false
> arr.some(k => k.includes('0') ? console.log('true') : null);
true
true
true
false
【问题讨论】:
-
你需要了解胖箭头......这是你的问题。 developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… 在这里使用 some() 是错误的…… some() 正在检查一件事是否正确……再次,阅读 some() 的文档
标签: javascript arrays node.js ecmascript-6