Итак, во-первых, это не проблема, с которой я сталкиваюсь.Я просматривал некоторые блоги Javascript
, когда столкнулся с методами-прототипами Array .indexOf and .includes
.Так что, если массив имеет NaN
в качестве значения, то, вероятно, indexOf
не сможет это выяснить, и у меня останется использование .includes
.Но мой вопрос здесь заключается в том, что, поскольку совместимость браузера includes
фактически исключает IE, какой должна быть альтернатива для обнаружения проверки NaN?Я думал о создании полифилла, ссылаясь на this
if (Array.prototype.includes) {
Object.defineProperty(Array.prototype, "includes", {
enumerable: false,
value: function(obj) {
var newArr = this.filter(function(el) {
return el == obj;
});
return newArr.length > 0;
}
});
}
var arr = [NaN];
console.log(arr.includes(NaN));
Но, к сожалению, он также возвращает false.Так какие еще варианты у меня есть?Или я что-то упустил?