Javascript 声音可以';不能在if语句中定义

Javascript 声音可以';不能在if语句中定义,javascript,audio,Javascript,Audio,我有这样一个代码: var snd = [new Audio("bla/blo.wav"), new Audio("bla/bli.wav")] function playSnd(x) { if (x == 1) {snd[0].play()} if (x == 2) {snd[1].play()} } playSnd(2) 这里的“playSnd(2)”是个问题,它会同时播放这两种声音,为什么呢?我似乎找不到你的代码有什么问

我有这样一个代码:

    var snd = [new Audio("bla/blo.wav"), new Audio("bla/bli.wav")]

    function playSnd(x) {
        if (x == 1) {snd[0].play()}
        if (x == 2) {snd[1].play()}
    }

    playSnd(2)

这里的“playSnd(2)”是个问题,它会同时播放这两种声音,为什么呢?

我似乎找不到你的代码有什么问题。但您可以从使用else if开始调试代码出错的地方

var snd = ["bla/blo.wav", "bla/bli.wav"]

function playSnd(x) {
    if (x == 1) {(new Audio( snd[0] )).play()}
    if (x == 2)  {(new Audio( snd[1] )).play()}
}

playSnd(2)
var snd = [new Audio("bla/blo.wav"), new Audio("bla/bli.wav")]

function playSnd(x) {
    if (x == 1) {snd[0].play()}
    else if (x == 2) {snd[1].play()}
}

playSnd(2)

编辑它。。。([0]和[0])不可能。在这个宇宙中
2=1
@iamnotmaynard分号不是强制性的,但建议使用。@Mich'修复什么?代码是正确的。如果有问题,则不在该代码中。给定代码只播放第二个声音。这里测试:页面上还有其他代码吗?在任何人说这不能回答问题之前,它确实解决了标题中的问题。只是不是发帖中的问题。是的,这正是我尝试过的,但因为我不想每次播放时都加载声音,所以我不接受你的回答。在这种情况下,你可能需要更强大的技术,如。这应该是一个评论,而不是回答。