在javascript中使用拼接删除嵌套数组中的项

在javascript中使用拼接删除嵌套数组中的项,javascript,arrays,if-statement,for-loop,splice,Javascript,Arrays,If Statement,For Loop,Splice,使用splice从阵列中删除项目时遇到问题。首先,我有一个名为player的数组,它包含另外三个名为tier1、tier2和tier3的数组。这三个数组中都有存储在其中的值,我希望对它们进行操作。我的页面上有一个输入和一个按钮,单击该按钮可激活与拼接阵列相关的JS功能。 我已经用FOR循环设置了一个IF语句,以便通过tier1检查输入文本是否与数组中的值匹配,如果在tier1中找不到文本,则应该对tier2和tier3执行相同的操作,如果输入文本不在任何数组中,则最后显示一条错误消息。如果输入文

使用splice从阵列中删除项目时遇到问题。首先,我有一个名为player的数组,它包含另外三个名为tier1、tier2和tier3的数组。这三个数组中都有存储在其中的值,我希望对它们进行操作。我的页面上有一个输入和一个按钮,单击该按钮可激活与拼接阵列相关的JS功能。 我已经用FOR循环设置了一个IF语句,以便通过tier1检查输入文本是否与数组中的值匹配,如果在tier1中找不到文本,则应该对tier2和tier3执行相同的操作,如果输入文本不在任何数组中,则最后显示一条错误消息。如果输入文本位于第1层,该函数可以正常工作,但由于某种原因,它似乎没有通过else if语句运行,我在下面提供了我的代码。我不确定这是否只是语法错误,或者是否缺少某种功能。非常感谢

var player=[]
var tier1=["p1","p2","p3"]
var tier2=["p4","p5","p6","p7"]
var tier3=["p8","p9","p10","p11"]

function removeFunction() {
    if (document.getElementById("removePlayer").value !== "") {
        for (index = 0; index < tier1.length; index++) {
            if(document.getElementById("removePlayer").value == tier1[index]) {
        tier1.splice(index, 1);
            playerFunction();
            playerAlert = "Player Removed";
            document.getElementById("test1").innerHTML = playerAlert;
            document.getElementById("test2").innerHTML = tier1;
    }}
    } else if (tier1[index] !== document.getElementById("removePlayer").value) {
        for (index = 0; index < tier2.length; index++) {
        if(tier2[index] == document.getElementById("removePlayer").value) {
            tier2.splice(index, 1);
            playerFunction();
            playerAlert = "Player Removed";
            document.getElementById("test1").innerHTML = playerAlert;
            document.getElementById("test2").innerHTML = tier2;
        }}
    } else if (tier2[index] !== document.getElementById("removePlayer").value) {
        for (index = 0; index < tier3.length; index++) {
        if(tier3[index] == document.getElementById("removePlayer").value) {
            tier3.splice(index, 1);
            playerFunction();
            playerAlert = "Player Removed";
            document.getElementById("test1").innerHTML = playerAlert;
            document.getElementById("test2").innerHTML = tier3;
        }
    }} else {
        playerAlert = "Nothing happened";
        document.getElementById("test1").innerHTML = playerAlert;
    }
}
var-player=[]
变量第1层=[“p1”、“p2”、“p3”]
var tier2=[“p4”、“p5”、“p6”、“p7”]
变量tier3=[“p8”、“p9”、“p10”、“p11”]
函数removeFunction(){
if(document.getElementById(“removePlayer”).value!=“”){
对于(索引=0;索引

这将对您有所帮助

function removeFunction() {
    if (document.getElementById("removePlayer").value !== "") {
        for (index = 0; index < tier1.length; index++) {
            if (document.getElementById("removePlayer").value == tier1[index]) {
                tier1.splice(index, 1);
                playerFunction();
                playerAlert = "Player Removed";
                document.getElementById("test1").innerHTML = playerAlert;
                document.getElementById("test2").innerHTML = tier1;
                return;
            }
            if (document.getElementById("removePlayer").value == tier2[index]) {
                tier2.splice(index, 1);
                playerFunction();
                playerAlert = "Player Removed";
                document.getElementById("test1").innerHTML = playerAlert;
                document.getElementById("test2").innerHTML = tier2;
                return;
            }
            if (document.getElementById("removePlayer").value == tier3[index]) {
                tier3.splice(index, 1);
                playerFunction();
                playerAlert = "Player Removed";
                document.getElementById("test1").innerHTML = playerAlert;
                document.getElementById("test2").innerHTML = tier3;
                return;
            }
        }
    }
    playerAlert = "Nothing happened";
    document.getElementById("test1").innerHTML = playerAlert;
}
函数removeFunction(){
if(document.getElementById(“removePlayer”).value!=“”){
对于(索引=0;索引

编辑:更正了从第二层[index]到第三层[index]的最终IF语句。

jsf如果您能省略此项,将不胜感激@CodingAnt编辑了我的问题,将其包括在内,onload函数不起作用,但它应该显示播放器数组,这是我第一次使用JSFIDLE,所以我可能做得不对这对FIDLE不起作用,因为所有javascript get都自动包装在一个函数中,get由JSFIDLE在document.onload上执行。因此,当您尝试分配时,您分配给body onload的功能不存在。但是,您可以从左侧的jsfiddle关闭此函数,其中显示“onload”@Markai谢谢我更改了onload,它现在可以工作了。这非常好,工作非常完美,我将花一些时间阅读您包含的return语句。非常感谢,我会投票的,但是我没有这个名声