次の配列があります array =[['apple',23,1,20],['orange',12,10,10]] 上記の配列に 10 が存在するかどうかを確認するにはどうすればよいですか?配列を使用しようとしました。 indexOf でもうまくいきませんでした。
質問する
7900 次
4 に答える
1
.indexOf()
問題はarray
変数にあります。array
変数自体には 2 つの異なる配列が含まれています。
以下のコードを試してください。
var array = [
['apple', 23, 1, 20],
['orange', 12, 10, 10]
];
for (var i = 0; i < array.length; i++) { //Iterate through arrays in array
if (array[i].indexOf(10) > -1) {
alert("Yep");
} else {
alert("nope");
}
}
于 2013-10-09T05:17:16.593 に答える
1
にはECMAScript 5
、2 つの配列メソッドsome
とindexOf
var search = 10 ;
var found = a.some( function( v ) {
return v.indexOf( search ) !== -1 ;
});
if ( found ) {
alert( 'exists')
}
于 2013-10-09T05:23:44.763 に答える
0
次のコードを使用して、配列を検索できます。
<!DOCTYPE html>
<html>
<body>
<script>
var i,j;
var toFind = 10;
var array = new Array();
array = [['apple',23,1,20],['orange',12,10,10]]
for (i=0;i<array.length;i++)
{
for(j=0;j<array[i].length;j++)
{
if(array[i][j] == toFind)
document.write("element found <br/>");
}
}
</script>
</body>
</html>
toFind は、検索する要素または数値です。
于 2013-10-09T05:35:23.793 に答える
0
問題の原因として次のことが考えられます。
- ネストされた配列があります
- Array.indexOf はすべてのブラウザでサポートされているわけではありません
以下が機能するはずです。
function includes(arrayOfArrays, item) {
var array, i, j;
for(i=0; i<arrayOfArrays.length; ++i) {
array = arrayOfArrays[i];
for(j=0; j<array.length; ++j) {
if(array[j] === item) {
return true;
}
}
}
return false;
}
于 2013-10-09T05:17:49.240 に答える