检查javascript数组中的多个元素

时间:2014-07-22 06:51:43

标签: javascript

我有一个阵列' 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")
}

2 个答案:

答案 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个问题

  1. 你正在推动字符串&#34; filetype_value&#34;在您的数组而不是实际值,所以在您的搜索功能中,您实际上正在测试:'filetype_value' === arg
  2. 您正在使用1开始循环,数组的索引为0
  3. 更改

    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;
    }