我正在使用Titanium,我的代码看起来是这样的:
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数组。使用上面的代码,我仍然无法检测到不存在的索引。
如果数组的元素也是简单对象或数组,你可以使用一些函数:
// 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;
}
});
这也很好,使用===对undefined进行类型测试。
if (array[index] === undefined){ return } // True
测试:
const fruits =["香蕉","橘子","苹果","芒果"];
if (fruit ["Cherry"] === undefined){
console.log("There 't any cherry in the fruits basket:(")
}
或类似的:
const fruits =["香蕉","橘子","苹果","芒果"];
如果(!水果(“樱桃”)){
console.log("There 't any cherry in the fruits basket:(")
}
//没有错误:
如果(水果(“樱桃”)){
console.log(“里面有樱桃!”)
}
如果我说错了,请谁纠正我,但我相信下面是真的:
数组实际上只是JS框架下的对象
因此,他们从Object“继承”了原型方法hasOwnProperty
在我的测试中,hasOwnProperty可以检查数组下标是否存在任何东西。
所以,只要上述条件成立,你就可以简单地:
const arrayHasIndex = (array, index) => array. isarray (array) && array. hasownproperty (index);
用法:
arrayHasIndex((1、2、3、4),4);输出:假
arrayHasIndex((1、2、3、4),2);输出:真