方法: 1. for ステートメントを使用して配列を走査し、配列要素を指定された値と比較します。それらが等しい場合、それらは存在します。2. 要素が一致する場合は、indexOf メソッドを使用して添え字の値を返します。配列内に存在します。存在しない場合は、添え字の値を返します。Return "-1"; 3. inArray() メソッドを使用して、要素が存在する場合は添え字の値を返し、要素が存在する場合は "-1" を返します。存在しない。
このチュートリアルの動作環境: Windows7 システム、javascript1.8.5&&jquery1.10.2 バージョン、Dell G3 コンピューター。
js に配列があります。この配列に要素が存在するかどうかを判断するにはどうすればよいですか? まず、ループを通じて判断します。コードは次のとおりです。
var arr = ['a','s','d','f']; console.info(isInArray(arr,'a'));//循环的方式 /** * 使用循环的方式判断一个元素是否存在于一个数组中 * @param {Object} arr 数组 * @param {Object} value 元素值 */ function isInArray(arr,value){ for(var i = 0; i < arr.length; i++){ if(value === arr[i]){ return true; } } return false; }
このメソッドは詳細です。一般的なメソッドですが、関数を自分で記述する必要があります。2 番目のメソッドを見てみましょう:
var arr = ['a','s','d','f']; console.info(arr.indexOf('a'));//在IE某些版本中不支持,可以自行扩展
このメソッドは、配列の IndexOf メソッドを直接使用して決定します。要素が配列内に存在する場合、返された要素は配列内にあります。添え字の値が存在しない場合は、-1 が返されます。indexOf は大文字と小文字が区別され、文字 O は大文字にする必要があることに注意してください。そうでない場合は、エラーが報告されます。なお、この方法はIEの一部のバージョンでは利用できません。動作しないので、使用する前に判断する必要があります。修正コードは次のとおりです。
/** * 使用indexOf判断元素是否存在于数组中 * @param {Object} arr 数组 * @param {Object} value 元素值 */ function isInArray3(arr,value){ if(arr.indexOf&&typeof(arr.indexOf)=='function'){ var index = arr.indexOf(value); if(index >= 0){ return true; } } return false; }
3番目の方法は、 jquery の inArray メソッドを使用すると、配列内の要素が返されます。添字が配列内に存在しない場合は、-1 が返されます。コードは次のとおりです。
/** * 使用jquery的inArray方法判断元素是否存在于数组中 * @param {Object} arr 数组 * @param {Object} value 元素值 */ function isInArray2(arr,value){ var index = $.inArray(value,arr); if(index >= 0){ return true; } return false; }
このメソッドは、要素を削除するために使用できます。配列内の未知の添字値を含むコードは次のとおりです:
var arr = ['a','s','d','f']; console.info("删除元素之前的数组:"+arr); arr.splice($.inArray('a',arr),1); console.info("删除元素之后的数组:"+arr);
実行結果は次のとおりです:
[Web浏览器] "删除元素之前的数组:a,s,d,f" /test/index.html (12) [Web浏览器] "删除元素之后的数组:s,d,f" /test/index.html (14)
[関連する推奨事項:JavaScript 学習チュートリアル]
以上がJavaScriptで値が配列内にあるかどうかを確認する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。