Как и другие отмечали, в первой строке var compare = i
функции isSame()
будет храниться значение undefined
для переменной compare
, при этом в вашем цикле всегда сравнивается первый элемент из array
со значением undefined
на каждой итерации.
Было бы намного лучше, если бы вы сравнили первый элемент массива с другими элементами.Примерно так:
function isSame(arr)
{
for (let i = 1; i < arr.length; i++)
{
if (arr[i] !== arr[0])
return false;
}
return true;
}
console.log(isSame([1,1,1]));
console.log(isSame([1,2,1]));
console.log(isSame([]));
console.log(isSame([1]));
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}
В качестве примечания следует отметить, что это будет работать хорошо, только если массив содержит примитивных типов .Чтобы понять, почему это так, проверьте следующий пример:
console.log({key:"value"} === {key:"value"});
console.log([1,2] === [1,2]);
.as-console {background-color:black !important; color:lime;}
.as-console-wrapper {max-height:100% !important; top:0;}