Давайте разберемся в этом
Почему этот вывод дает 2
arr.some(k => k.includes('0') ? count++ : null);
let count = 0;
let arr = ['011','202','3300']
arr.some(k => k.includes('0') ? count++ : null);
console.log(count)
Таким образом, на первой итерации count++
вернет 0, а затем увеличит значение на 1. (поскольку это постинкремент)
На второй итерации будет возвращено значение как 1
, которое истинно, а затем увеличено на 1. (так как вы нашли одно истинное значение, некоторые остановят итерацию)
Почему этот вывод дает 3
arr.some(k => {k.includes('0') ? console.log('true') : null});
let count = 0;
let arr = ['011','202','3300']
arr.some(k => {k.includes('0') ? count++ : null});
console.log(count)
- Здесь вы не используете неявный возврат функции стрелки, поэтому на каждой итерации вы в конечном итоге возвращаете undefined.так что некоторые из вас будут перебирать все элементы, и вы получите выходное значение 3.
Просто добавьте оператор return и посмотрите изменения.
let count = 0;
let arr = ['011','202','3300']
arr.some(k => { return k.includes('0') ? count++ : null});
console.log(count)