Я пытался закодировать фрагменты кода как со строгим, так и со свободным равенством, чтобы подсчитать общее количество истинных значений в данном массиве.
Код работает правильно со свободным равенством
let array = [0, '0', true, 100, false, NaN];
countTruthy(array);
function countTruthy(array){
let count = 0 ;
for (let element of array){
if (element == (null || undefined || NaN || false || 0 || '')){ //comparing with loose equality
continue;
}
console.log(element);
count++
}
console.log (`The total truthy in the array is : ${count}`);
}
Пока код дает неверный счет со строгим равенством.
let array = [0, '0', true, 100, false, NaN];
countTruthy(array);
function countTruthy(array){
let count = 0 ;
for (let element of array){
if (element === (null || undefined || NaN || false || 0 || '')){//Using the strict equality
continue;
}
console.log(element);
count++
}
console.log (`The total truthy in the array is : ${count}`);
}
Я тоже попробовал
console.log(undefined === undefined);
Почему я получаю неправильный счет со строгим равенством, а правильный счет со свободным равенством?
Я также знаю, что существует эффективный способ написания того же кода , Поэтому, пожалуйста, дайте предложения только по вышеуказанным вопросам, с которыми я сталкиваюсь.