如何检查传递的参数是否是数组数组

时间:2015-06-22 05:54:08

标签: javascript

我只需要允许function([a, b, c, d])function(a, b, c, d)之类的向量到我的程序中。我需要编写一个单元测试,当我获得function([a, b][c, d])function([a][b][c][d])形式的参数时会出现语法错误。

请注意,我不是在寻找一个数组。我需要过滤掉多个数组,只接受一维数组(或根本没有数组)

如何检查这些参数是否存在?

3 个答案:

答案 0 :(得分:0)

如果您的函数始终带有一个或多个参数,则可以通过测试Array.isArray(arguments[i])进行检查。

答案 1 :(得分:0)

function myMethod(param){
    if(param instanceof Array)
    {
        // check that no element is an array
        return !param.some(function(item){
            return item instanceof Array;
        });
    }

    return false;
}

console.log(myMethod([1,2,3,4])); // true
console.log(myMethod([1,2,3,4, [1,2]])); // false

我真的不明白你的输入是a,b,c,d[a,b,c,d] - 你的原型是什么?

答案 2 :(得分:-1)

你可以随时检查它的子节点是否为数组

x = [[1,2,3], [4,5,6]];
if(Array.isArray(x))//true since x is a array
    if(Array.isArray(x[0])) //true since x[0] is array
        console.log('x is two dimensional array')