260

私は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配列にインデックスを渡します。上記のコードを使用しても、存在しないインデックスを検出できません。

4

22 に答える 22

497

使用するtypeof arrayName[index] === 'undefined'

すなわち

if(typeof arrayName[index] === 'undefined') {
    // does not exist
}
else {
    // does exist
}
于 2012-10-28T09:58:37.637 に答える
92
var myArray = ["Banana", "Orange", "Apple", "Mango"];

if (myArray.indexOf(searchTerm) === -1) {
  console.log("element doesn't exist");
}
else {
  console.log("element found");
}
于 2013-09-12T17:35:49.543 に答える
18

私が間違っている場合は誰かが私を訂正してください、しかし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

于 2019-04-03T20:21:12.927 に答える
17

最近はecmascriptを利用して、そのように使用します

return myArr?.[index]
于 2021-03-05T11:59:52.367 に答える
16

これはまさにinオペレーターの目的です。次のように使用します。

if (index in currentData) 
{ 
    Ti.API.info(index + " exists: " + currentData[index]);
}

受け入れられた答えは間違っています。の値が次の場合、偽陰性になりindexますundefined

const currentData = ['a', undefined], index = 1;

if (index in currentData) {
  console.info('exists');
}
// ...vs...
if (typeof currentData[index] !== 'undefined') {
  console.info('exists');
} else {
  console.info('does not exist'); // incorrect!
}

于 2019-10-01T13:49:23.247 に答える
5

techfoobarの答えをtry..catchブロックでラップする必要がありました。

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

...とにかく、それはchromeでどのように機能したかです(そうでなければ、コードはエラーで停止しました)。

于 2013-08-09T14:00:07.930 に答える
4

配列を考えてみましょう:

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')
于 2015-08-16T04:43:06.667 に答える
3

配列の要素も単純なオブジェクトまたは配列である場合は、次の関数を使用できます

// 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;
    }
});
于 2015-01-22T12:42:15.700 に答える
3
var demoArray = ['A','B','C','D'];
var ArrayIndexValue = 2;
if(ArrayIndexValue in demoArray){
   //Array index exists
}else{
   //Array Index does not Exists
}
于 2018-10-31T16:17:01.367 に答える
2

あなたがこのようなものを探しているなら。

これが次のスニペットです

var demoArray = ['A','B','C','D'];
var ArrayIndexValue = 2;
if(demoArray.includes(ArrayIndexValue)){
alert("value exists");
   //Array index exists
}else{
alert("does not exist");
   //Array Index does not Exists
}

于 2018-10-31T19:38:10.540 に答える
2

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

于 2019-05-27T06:54:05.387 に答える
1

underscore.jsを使用する場合、これらのタイプのnullおよび未定義のチェックはライブラリによって非表示になります。

したがって、コードは次のようになります-

var currentData = new Array();

if (_.isEmpty(currentData)) return false;

Ti.API.info("is exists  " + currentData[index]);

return true;

今でははるかに読みやすくなっています。

于 2014-05-29T19:47:47.990 に答える
1

私の意見では、この方法が最も簡単です。

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');
        }
 }
于 2015-12-31T23:07:15.683 に答える
1

アイテムが存在するかどうかを確認する簡単な方法

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")
于 2016-11-23T14:21:12.773 に答える
1

配列インデックスがJSに存在するかどうかを調べようとする場合、それを行う最も簡単で最短の方法は、二重否定を使用することです。

let a = [];
a[1] = 'foo';
console.log(!!a[0])   // false
console.log(!!a[1])   // true
于 2019-09-30T13:56:22.067 に答える
1
const arr = []

typeof arr[0] // "undefined"

arr[0] // undefined

ブール式の場合

typeof arr[0] !== typeof undefined

trueの場合、0はarrに含まれます

于 2019-10-16T09:10:10.797 に答える
1

1行の検証。最も簡単な方法。

return !!currentData[index];

出力

var testArray = ["a","b","c"]

testArray[5]; //output => undefined
testArray[1]; //output => "b"

!!testArray[5]; //output => false
!!testArray[1]; //output => true
于 2021-08-01T13:29:32.900 に答える
0

あなたは単にこれを使うことができます:

var tmp = ['a', 'b'];
index = 3 ;
if( tmp[index]){
    console.log(tmp[index] + '\n');
}else{
    console.log(' does not exist');
}
于 2015-07-21T15:23:30.223 に答える
0
(typeof files[1] === undefined)?
            this.props.upload({file: files}):
            this.props.postMultipleUpload({file: files widgetIndex: 0, id})

とを使用して、配列の2番目の項目が未定義かどうかtypeofを確認します。undefined

于 2018-10-14T23:57:34.830 に答える
0

===これも正常に機能し、に対してを使用してタイプごとにテストしundefinedます。

if (array[index] === undefined){ return } // True

テスト:

const fruits = ["Banana", "Orange", "Apple", "Mango"];

if (fruits["Raspberry"] === undefined){
  console.log("No Raspberry entry in fruits!")
}

于 2020-02-02T08:46:42.020 に答える
0
if(typeof arrayName[index] == undefined) {
    console.log("Doesn't exist")
}
else {
console.log("does exist")
}
于 2021-07-21T07:58:30.710 に答える
0

Object.hasOwn()の使用

配列の要素は独自のプロパティと見なされるため、新しいObject.hasOwn()メソッドを使用して、次の例のように、特定のインデックスが短くエレガントな方法で存在するかどうかを確認できます。

let cars = ['Reno', 'Ford','Honda', 'BMW'];
console.log(Object.hasOwn(cars, 3));   // true ('BMW')
console.log(Object.hasOwn(cars, 4));   // false - not defined

于 2021-09-28T16:03:19.193 に答える