184 votes

JavaScript est dans la gamme

Disons que j'ai ceci:

var blockedTile = new Array("118", "67", "190", "43", "135", "520");

Il n'y a plus d'éléments de tableau, mais ce ne sont que quelques-uns pour des raisons de lisibilité. De toute façon, je pourrais faire une boucle "for" mais il ne fait 500 boucles à chaque fois que vous cliquez sur la carte... est-il un autre moyen de voir si une chaîne de caractère est un tableau?

285voto

Bala R Points 57552

Essayez ceci:

if(blockedTile.indexOf("118") != -1)
{  
   // element found
}

12voto

ndhanhse Points 54
function in_array(needle, haystack){
    var found = 0;
    for (var i=0, len=haystack.length;i<len;i++) {
        if (haystack[i] == needle) return i;
            found++;
    }
    return -1;
}
if(in_array("118",array)!= -1){
//is in array
}

11voto

alex Points 186293

Certains navigateurs prennent en charge Array.indexOf().

Si non, vous pourriez augmenter le Array objet par l'intermédiaire de son prototype comme si...

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(searchElement /*, fromIndex */)
  {
    "use strict";

    if (this === void 0 || this === null)
      throw new TypeError();

    var t = Object(this);
    var len = t.length >>> 0;
    if (len === 0)
      return -1;

    var n = 0;
    if (arguments.length > 0)
    {
      n = Number(arguments[1]);
      if (n !== n) // shortcut for verifying if it's NaN
        n = 0;
      else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0))
        n = (n > 0 || -1) * Math.floor(Math.abs(n));
    }

    if (n >= len)
      return -1;

    var k = n >= 0
          ? n
          : Math.max(len - Math.abs(n), 0);

    for (; k < len; k++)
    {
      if (k in t && t[k] === searchElement)
        return k;
    }
    return -1;
  };
}

Source.

11voto

Brandon Boone Points 8372

Utilisation Underscore.js

C' croix-navigateur compatible et peut effectuer une recherche binaire si vos données sont triées.

_.indexOf

_.indexOf(tableau, valeur, [isSorted]) Renvoie l'index à la valeur peut être trouvé dans le tableau, ou -1 si la valeur n'est pas présente dans le tableau. Utilise le natif indexOf fonction, sauf si elle est manquante. Si vous êtes travailler avec un grand tableau, et vous savez que le tableau est déjà triés, passez true pour isSorted d'utiliser une rapide recherche binaire.

Exemple

//Tell underscore your data is sorted (Binary Search)
if(_.indexOf(['2','3','4','5','6'], '4', true) != -1){
    alert('true');
}else{
    alert('false');   
}

//Unsorted data works to!
if(_.indexOf([2,3,6,9,5], 9) != -1){
    alert('true');
}else{
    alert('false');   
}

6voto

Marty Points 22040
if(array.indexOf("67") != -1) // is in array

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X