我有一个阵列' type'有多个元素。如何检查两个元素包含' type'阵列? 我试过以下代码
var i, j;
var type = [];
for (i = 1; i <= count; i++)
{
var filetype_value = parseInt((document.submission['select_type_' + i].value));
type.push(filetype_value);
}
function search(arg)
{
for (j = 1; j <= count; j++)
{
if (type[j] === arg)
{
return true;
}
else
{
return false;
}
}
}
if(search(1) && search(2))
{
alert("Contains in array")
}
答案 0 :(得分:0)
您的方法存在一些问题。
1)您只是在检查type[1]===arg
是否会返回true
,否则会返回false。所以它只会检查type[1]
。
2)因为file_type
值是字符串所以filetype_value' === arg
永远不会成为现实。
3)在你的循环j=1
中永远不会检查数组的first
元素。
试试这个
function search(arg){
var matched = false;
for (j = 0; j <= type.length; j++){
if (type[j] == arg){
matched = true;
break;
}
}
return matched;
}
答案 1 :(得分:0)
你有2个问题
'filetype_value' === arg
更改
type.push('filetype_value');
到
type.push(filetype_value);
变化
for (j = 1; j <= count; j++)
到
for (j = 0; j <= count; j++)
也可以使用数组indexOf方法来测试数组中是否存在值
,而不是执行循环function search(arg){
return type.indexOf(arg) !== -1;
}