Javascript ES6.带有三元运算符的some()的行为不同
我注意到.some()数组方法和三元运算符有一个奇怪的行为 当整数(计数)必须在有花括号和无花括号的每个真情况下递增时,其行为会有所不同 尽管如此,console.log在每次迭代中都显示正确的truthy 有什么想法吗Javascript ES6.带有三元运算符的some()的行为不同,javascript,arrays,node.js,ecmascript-6,Javascript,Arrays,Node.js,Ecmascript 6,我注意到.some()数组方法和三元运算符有一个奇怪的行为 当整数(计数)必须在有花括号和无花括号的每个真情况下递增时,其行为会有所不同 尽管如此,console.log在每次迭代中都显示正确的truthy 有什么想法吗 > let arr = ['011','202','3300'] undefined > let count = 0; undefined > arr.some(k => k.includes('0') ? count++ : null); true &
> 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
让我们了解一下这一点 为什么这个给出了输出2
let count=0;
设arr=['011','202','3300']
arr.some(k=>k.includes('0')?计数++:空);
console.log(count)
您需要了解胖箭头。。。。这是你的问题。在这里使用some()是错误的。。。。some()正在检查一件事是否正确。。。。同样,请阅读文档中的一些()可能的副本,这些副本可以添加到{}
中,没有返回任何内容,因此总是false
。很明显,你刚加上这个,就开始读心术了
arr.some(k => k.includes('0') ? count++ : null);