检查javascript中的数组中是否已存在元素
我有以下数组 数组=['apple',23,1,20],'orange',12,10,10]] 如何检查上述数组中是否存在10?我尝试使用array.indexOf,但效果不好。有人能帮忙吗检查javascript中的数组中是否已存在元素,javascript,arrays,Javascript,Arrays,我有以下数组 数组=['apple',23,1,20],'orange',12,10,10]] 如何检查上述数组中是否存在10?我尝试使用array.indexOf,但效果不好。有人能帮忙吗 .indexOf()将起作用,问题在于数组变量 数组变量本身包含两个不同的数组 请尝试下面的代码 var array = [ ['apple', 23, 1, 20], ['orange', 12, 10, 10] ]; for (var i = 0; i < array.length
.indexOf()
将起作用,问题在于数组
变量数组
变量本身包含两个不同的数组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");
}
}
var数组=[
[apple',23,1,20],
[‘橙色’、12、10、10]
];
对于(var i=0;i-1){
警惕(“是”);
}否则{
警报(“nope”);
}
}
选中此项问题可能是因为:
- 您有嵌套数组
- 并非所有浏览器都支持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;
}
功能包括(arrayOfArrays,项目){
var数组,i,j;
对于ECMAScript 5
中的(i=0;i),有两种数组方法some
和indexOf
var search = 10 ;
var found = a.some( function( v ) {
return v.indexOf( search ) !== -1 ;
});
if ( found ) {
alert( 'exists')
}
您可以使用以下代码在数组中搜索
<!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>
varⅠ,j;
var-toFind=10;
var数组=新数组();
数组=['apple',23,1,20],'orange',12,10,10]]
对于(i=0;i为什么工作不好?因为你有嵌套数组?+1有趣而且看起来很优雅。数组中的循环很容易,我创建了一个提琴。有一个问题是它支持所有浏览器吗?特别是IE?@user1671639请在IE 9+中检查它,但是对于默认情况下没有的浏览器,有一个选项。@rab,可能想检查v是否是一个在对其调用indexOf
之前的数组。