Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript ES6.带有三元运算符的some()的行为不同_Javascript_Arrays_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript ES6.带有三元运算符的some()的行为不同

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 &

我注意到.some()数组方法和三元运算符有一个奇怪的行为

当整数(计数)必须在有花括号和无花括号的每个真情况下递增时,其行为会有所不同

尽管如此,console.log在每次迭代中都显示正确的truthy

有什么想法吗

> 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);