티타늄으로 작업하고 있는데 코드는 다음과 같습니다.
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 는 다음과 같습니다.
- 배열은 실제로 JS의 후드 아래에있는 객체입니다.
- 따라서 그들은
hasOwnProperty
“상속 된” 프로토 타입 방법 을Object
- 내 테스트
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')
}