Как проверить, существует ли элемент массива или нет в javascript?



Я работаю с титаном ,



мой код выглядит как



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;
}


Я передаю индекс в массив currentData,



для несуществующего элемента, я все еще не в состоянии обнаружить его с помощью кода выше

323   9  

9 ответов:

использовать typeof arrayName[index] === 'undefined'

т. е.

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

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

мне пришлось обернуть ответ techfoobar в try..catch блок, вот так:

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

...вот как это работало в chrome, во всяком случае (в противном случае, код остановился с ошибкой).

рассмотрим массив a:

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

Если вы хотите проверить, существует ли "name1" в a, просто проверьте его с помощью in:

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

если элементы массива также являются простыми объектами или массивами, вы можете использовать некоторые:

// 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;
    }
});

этот способ самый простой на мой взгляд.

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');
}

и, возможно, другой способ сделать это.

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

Если вы используете подчеркивания.js тогда эти типы нулевой и неопределенной проверки скрыты библиотекой.

Так что ваш код будет выглядеть так -

var currentData = new Array();

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

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

return true;

теперь он выглядит гораздо более читаемым.

вы можете просто использовать это:

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

простой способ проверить, существуют или нет

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")

Comments

    Ничего не найдено.