Estou trabalhando com Titanium, meu código fica assim:
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;
}
Estou passando um índice para a matriz currentData
. Ainda não consigo detectar um elemento inexistente usando o código acima.
javascript
titanium
titanium-mobile
Pradeep
fonte
fonte
&&
) entre as condições individuais.Respostas:
Usar
typeof arrayName[index] === 'undefined'
ie
fonte
if(arrayName[index] === 'undefined')
como um atalhoif(arrayName[index] === undefined)
.fonte
if(myArray.indexOf(searchTerm) === -1)
Alguém me corrija se eu estiver errado, mas AFAIK é verdadeiro:
hasOwnProperty
"herdado" deObject
hasOwnProperty
posso verificar se existe alguma coisa em um índice de matriz.Portanto, desde que o acima seja verdadeiro, você pode simplesmente:
const arrayHasIndex = (array, index) => Array.isArray(array) && array.hasOwnProperty(index);
uso:
arrayHasIndex([1,2,3,4],4);
saídas:false
arrayHasIndex([1,2,3,4],2);
saídas:true
fonte
Eu tive que envolver a resposta do techfoobar em um bloco
try
..catch
, assim:... foi assim que funcionou no chrome, de qualquer maneira (caso contrário, o código parou com um erro).
fonte
arrayName
própria variável (ouindex
) não existir. Simplesmente acessar um elemento de matriz indefinido não deveria ter resultado em um "erro"?Se os elementos da matriz também são objetos ou matrizes simples, você pode usar alguma função:
fonte
some
é a maneira mais moderna por aqui. Também pode até se tornar um one-liner comomyArray.some(el => el.item === element.item && el.title === element.title)
Considere a matriz a:
Se você deseja verificar se 'name1' existe em a, basta testá-lo com
in
:fonte
fonte
Se você usar underscore.js , esse tipo de verificação nula e indefinida será ocultada pela biblioteca.
Portanto, seu código ficará assim -
Parece muito mais legível agora.
fonte
Maneira simples de verificar se o item existe ou não
fonte
myArray[1000000] = 'Pear'
, sua função levará uma eternidade.Este é o caminho mais fácil na minha opinião.
E talvez outra maneira de fazer isso seja.
fonte
fonte
Se você está procurando algo assim.
Aqui está o seguinte snippetr
fonte
Array.includes
de verificar se um valor é uma matriz, por exemplodemoArray.indexOf(ArrayIndexValue) !== -1
. esta questão consiste em verificar se o índice existe na matriz, o que é um problema completamente diferentevocê pode simplesmente usar isso:
fonte
tmp = [0,0,0,0]
, em seguida, tmp [3] deve existirVerifique se o segundo item da matriz está indefinido usando o
typeof
e verificando seundefined
fonte
Ao tentar descobrir se existe um índice de matriz em JS, a maneira mais fácil e mais curta de fazê-lo é através da dupla negação.
fonte
É exatamente para isso que o
in
operador serve. Use-o assim:A resposta aceita está errada, dará um falso negativo se o valor em
index
forundefined
:fonte
Se expressão booleana
é verdadeiro, então 0 está contido em arr
fonte
Isso também funciona bem, testando por tipo contra
undefined
.Teste:
fonte