web-dev-qa-db-fra.com

Comment vérifier si un élément de tableau existe ou non en javascript?

Je travaille avec Titanium, mon code ressemble à ceci:

var currentData = new Array();

if(currentData[index]!==""||currentData[index]!==null||currentData[index]!=='null')
{
    Ti.API.info("is exists  " + currentData[index]);
    return true;
}
else
{   
    return false;
}

Je passe un index au tableau currentData. Je ne suis toujours pas en mesure de détecter un élément inexistant à l'aide du code ci-dessus.

140
Pradeep

Utilisez typeof arrayName[index] === 'undefined'

c'est à dire.

if(typeof arrayName[index] === 'undefined') {
    // does not exist
}
else {
    // does exist
}
263
techfoobar
var myArray = ["Banana", "Orange", "Apple", "Mango"];

if (myArray.indexOf(searchTerm) === -1) {
  console.log("element doesn't exist");
}
else {
  console.log("element found");
}
68
yeswanth

J'ai dû envelopper la réponse de techfoobar dans un bloc try..__catch, comme suit:

try {
  if(typeof arrayName[index] == 'undefined') {
    // does not exist
  }
  else {
  // does exist
  }
} 
catch (error){ /* ignore */ }

De toute façon, c'est comme ça que ça fonctionnait en chrome (sinon, le code s'arrêtait avec une erreur).

3
Swiss Mister

Considérons le tableau a:

var a ={'name1':1, 'name2':2}

Si vous voulez vérifier si 'name1' existe dans un, testez-le simplement avec in:

if('name1' in a){
console.log('name1 exists in a')
}else
console.log('name1 is not in a')
2
Amir

Si les éléments de tableau sont aussi des objets simples ou des tableaux, vous pouvez utiliser some function:

// search object
var element = { item:'book', title:'javasrcipt'};

[{ item:'handbook', title:'c++'}, { item:'book', title:'javasrcipt'}].some(function(el){
    if( el.item === element.item && el.title === element.title ){
        return true; 
     } 
});

[['handbook', 'c++'], ['book', 'javasrcipt']].some(function(el){
    if(el[0] == element.item && el[1] == element.title){
        return true;
    }
});
2
Yaroslav Fedoruk

S'il vous plaît, corrigez-moi si j'ai tort, maisAUTANT QUE JE SACHEce qui suit est vrai:

  1. Les tableaux ne sont vraiment que des objets sous le capot de JS
  2. Ainsi, ils ont la méthode prototype hasOwnProperty "héritée" de Object
  3. dans mes tests, hasOwnProperty peut vérifier si quelque chose existe dans un index de tableau.

Donc, tant que ce qui précède est vrai, vous pouvez simplement:

const arrayHasIndex = (array, index) => Array.isArray(array) && array.hasOwnProperty(index);

usage:

arrayHasIndex([1,2,3,4],4); sorties: false

arrayHasIndex([1,2,3,4],2); sorties: true

1
r3wt

Si vous utilisez underscore.js , ces types de contrôle nul et non défini sont masqués par la bibliothèque.

Donc, votre code va ressembler à ceci -

var currentData = new Array();

if (_.isEmpty(currentData)) return false;

Ti.API.info("is exists  " + currentData[index]);

return true;

Il semble beaucoup plus lisible maintenant.

1
vatsal

Cette voie est la plus facile à mon avis.

var nameList = new Array('item1','item2','item3','item4');

// Using for loop to loop through each item to check if item exist.

for (var i = 0; i < nameList.length; i++) {
if (nameList[i] === 'item1') 
{   
   alert('Value exist');
}else{
   alert('Value doesn\'t exist');
}

Et peut-être une autre façon de le faire est.

nameList.forEach(function(ItemList)
 {
   if(ItemList.name == 'item1')
        {
          alert('Item Exist');
        }
 }
1
AmJustSam

vous pouvez simplement utiliser ceci: 

var tmp = ['a', 'b'];
index = 3 ;
if( tmp[index]){
    console.log(tmp[index] + '\n');
}else{
    console.log(' does not exist');
}
1
Salar

Moyen simple de vérifier si un élément existe ou non

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--)
       if (this[i] == obj)
       return true;
    return false;
}

var myArray= ["Banana", "Orange", "Apple", "Mango"];

myArray.contains("Apple")
1
Suhail Ahmed
var fruits = ["Banana", "Orange", "Apple", "Mango"];
if(fruits.indexOf("Banana") == -1){
    console.log('item not exist')
} else {
        console.log('item exist')
}
0
Mohammed Jafar
var demoArray = ['A','B','C','D'];
var ArrayIndexValue = 2;
if(ArrayIndexValue in demoArray){
   //Array index exists
}else{
   //Array Index does not Exists
}
0
Vikas Kandari
(typeof files[1] === undefined)?
            this.props.upload({file: files}):
            this.props.postMultipleUpload({file: files widgetIndex: 0, id})

Vérifiez si le deuxième élément du tableau n'est pas défini à l'aide de typeof et en vérifiant undefined

0
mewc

Si vous cherchez quelque chose comme ça.

Voici l'extrait suivant

var demoArray = ['A','B','C','D'];
var ArrayIndexValue = 2;
if(demoArray.includes(ArrayIndexValue)){
alert("value exists");
   //Array index exists
}else{
alert("does not exist");
   //Array Index does not Exists
}

0
Geeky