Как проверить, существует ли элемент массива или нет в 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,
для несуществующего элемента, я все еще не в состоянии обнаружить его с помощью кода выше
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