Переходите уже на новые стандарты :)
ES7:
let number = +(prompt("Введите число."));
alert([1, 2, 3].includes(number));
Полифилл:
if (![].includes) {
Array.prototype.includes = function(searchElement/*, fromIndex*/) {
if (this === undefined || this === null) {
throw new TypeError('Cannot convert this value to object');
}
var O = Object(this);
var len = parseInt(O.length) || 0;
if (len === 0) {
return false;
}
var n = parseInt(arguments[1]) || 0;
var k;
if (n >= 0) {
k = n;
} else {
k = len + n;
if (k < 0) k = 0;
}
while (k < len) {
var currentElement = O[k];
if (searchElement === currentElement ||
(searchElement !== searchElement && currentElement !== currentElement)) {
return true;
}
k++;
}
return false;
}
}
--- Крутой, чем твой вариант лучше "~[1, 2, 3].indexOf(number)"? |
Цитата:
<h1>Zagolovok-1</h1>
<button>click</button>
<script>
document.querySelector("button").addEventListener("click", function () {
var h1 = document.querySelector("h1");
if ( h1 ) {
h1.outerHTML = "<h2>Zagolovok-2</h2>";
}
alert(document.querySelector("h2").innerHTML);
});
</script>
PS: Erolast, забыл кнопку run |
А includes пока только в FF Nightly реализован. Вот вместе с полифиллом рабочий пример:
if (![].includes) {
Array.prototype.includes = function(searchElement/*, fromIndex*/) {
if (this === undefined || this === null) {
throw new TypeError('Cannot convert this value to object');
}
var O = Object(this);
var len = parseInt(O.length) || 0;
if (len === 0) {
return false;
}
var n = parseInt(arguments[1]) || 0;
var k;
if (n >= 0) {
k = n;
} else {
k = len + n;
if (k < 0) k = 0;
}
while (k < len) {
var currentElement = O[k];
if (searchElement === currentElement ||
(searchElement !== searchElement && currentElement !== currentElement)) {
return true;
}
k++;
}
return false;
}
}
alert([1, 2, 3, 4, 5, 6, 7, 8, 9, 10].includes(+(prompt("Введите число от 1 до 10."))));
|
| Часовой пояс GMT +3, время: 19:59. |