2016-08-24 3 views
0

Как реализовать JavaScript (без использования каких-либо библиотек) функцию inArray, примеры вызовов которой приведены ниже?Как реализовать функцию inArray (JavaScript)

inArray(15, [1, 10, 145, 8]) === false; [23, 674, 4, 12].inArray(4) === true;

Большое спасибо!

+1

[ 'indexOf'] (https://developer.mozilla.org/en/docs/Web/ JavaScript/Reference/Global_Objects/Array/indexOf) или ['includes'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/includes) – Scott

+0

Это было отвечено здесь: http://stackoverflow.com/questions/890782/j avascript-function-inarray/890808 # 890808 –

ответ

0

Вы ищете indexOf

[23, 674, 4, 12].indexOf(4) >= 0 // evaluates to true 
0

Вы можете прикрепить функции к прототипу Array.That this may cause problems has been thoroughly discussed elsewhere.

function inArray(needle, haystack) { 
 
    return haystack.indexOf(needle) >= 0; 
 
} 
 
Array.prototype.inArray = function(needle) { 
 
    return inArray(needle, this); 
 
} 
 

 
console.log(inArray(15, [1, 10, 145, 8])); // false 
 
console.log([23, 674, 4, 12].inArray(4)); // true

0

Вы можете использовать IndexOf с ES6:

var inArray = (num, arr) => (arr.indexOf(num) === -1) ? false : true; 
var myArray = [1 ,123, 45]; 
console.log(inArray(15, myArray)); // false 
console.log(inArray(123, myArray));// true 
+0

['indexOf' уже доступен с ES5.] (http://www.ecma-international.org/ecma-262/5.1/#sec-15.4.4.14) – Timo

+0

Да, но стрелки не являются :) –

+0

Neiter - они должны использовать 'indexOf' – Timo

Смежные вопросы