Pārbaudīt, vai masīvā ir elements

Lai to pārbaudītu, es tagad izmantoju šādu funkciju:

function inArray(needle,haystack)
{
    var count=haystack.length;
    for(var i=0;i<count;i++)
    {
        if(haystack[i]===needle){return true;}
    }
    return false;
}

Tā darbojas. Es meklēju, vai ir kāds labāks veids, kā to izdarīt.

Kods:

function isInArray(value, array) {
  return array.indexOf(value) > -1;
}

Izpilde:

isInArray(1, [1,2,3]); // true

Atjauninājums (2017):

Mūsdienu pārlūkprogrammās, kas izmanto ECMAScript 2016 (ES7) standartu, var izmantot funkciju Array.prototipe.includes, kas ievērojami atvieglo pārbaudi, vai elements atrodas masīvā:

const array = [1, 2, 3];
const value = 1;
const isInArray = array.includes(value);
console.log(isInArray); // true
Komentāri (7)

Vienkārši izmantojiet indexOf:

haystack.indexOf(needle) >= 0

Ja vēlaties atbalstīt vecos Internet Explorers (

Komentāri (6)

Lai to panāktu, varat izmantot funkciju _contains no bibliotēkas underscore.js:

if (_.contains(haystack, needle)) {
  console.log("Needle found.");
};
Komentāri (2)