我有以下数组 array = [['apple',23,1,20],['orange',12,10,10]] 我如何检查上面的数组中是否存在10个?我试图使用array.indexOf,但它没有正常工作。可以有人帮忙吗?
答案 0 :(得分: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");
}
}
选中此JSFiddle
答案 1 :(得分:1)
ECMAScript 5
中的,有两种数组方法some
和indexOf
var search = 10 ;
var found = a.some( function( v ) {
return v.indexOf( search ) !== -1 ;
});
if ( found ) {
alert( 'exists')
}
答案 2 :(得分:0)
问题可能是因为:
以下内容应该有效:
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;
}
答案 3 :(得分: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是您要查找的元素或数字。