使用变量初始化数组:意外的标记+

时间:2016-04-22 11:50:31

标签: javascript arrays initialization

我创建了一个简单的函数,它应该初始化一个数组,并在每次调用函数时从它返回一个随机元素。

function test(str)
{
    var myArray = 
    {
        "Test1 "+ str + " Test1",
        "Test2 "+ str+ " Test2"
    }

    return myArray[Math.random()*myArray.length+0];
}

console.log(test("FOO"));

但我得到Uncaught SyntaxError: Unexpected token +

2 个答案:

答案 0 :(得分:2)

对JS数组使用[]而不是{}。

function test(str)
    {
        var myArray =
                [
                    "Test1 "+ str + " Test1",
                    "Test2 "+ str+ " Test2"
                ]

        return myArray[parseInt(Math.random()*myArray.length, 10)];
    }

答案 1 :(得分:2)

您的代码中myArray不是数组,

function test(str){
    var myArray = ["Test1 " + str + " Test1","Test2 " + str + " Test2"] 
    return myArray[(Math.random() * myArray.length) | 0];
}

|这是一个有点明智的OR运算符。在做operand1时|操作数2,两个操作数都将转换为 base 2 并对其执行OR操作。最后,结果将转换回 base 10 。因此,小数点将被删除。