[javascript] 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있습니다. 위의 코드를 사용하여 존재하지 않는 요소를 여전히 감지 할 수 없습니다.



답변

사용하다 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");
}


답변

내가 틀렸다면 누군가 나를 수정하십시오. 그러나 AFAIK 는 다음과 같습니다.

  1. 배열은 실제로 JS의 후드 아래에있는 객체입니다.
  2. 따라서 그들은 hasOwnProperty“상속 된” 프로토 타입 방법 을Object
  3. 내 테스트 hasOwnProperty에서 배열 인덱스에 어떤 것이 있는지 확인할 수 있습니다.

따라서 위의 내용이 사실이라면 간단하게 다음을 수행 할 수 있습니다.

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

용법:

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

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


답변

techfoobar의 답변을 try.. catch블록 에 래핑 해야했습니다.

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

… 어쨌든 크롬에서 작동하는 방식입니다 (그렇지 않으면 코드가 오류와 함께 중단되었습니다).


답변

배열의 요소가 간단한 객체 또는 배열 인 경우 일부 기능을 사용할 수 있습니다 .

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


답변

배열 a를 고려하십시오.

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

‘name1’이 존재하는지 확인하려면 다음을 사용하여 테스트하십시오 in.

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


답변

var fruits = ["Banana", "Orange", "Apple", "Mango"];
if(fruits.indexOf("Banana") == -1){
    console.log('item not exist')
} else {
	console.log('item exist')
}