繁体   English   中英

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

[英]Removing item in nested array using splice in javascript

我在使用接头从阵列中删除项目时遇到问题。 首先,我有一个名为player的数组,其中包含其他三个名为tier1,tier2和tier3的数组。 所有这三个数组中都存储有我要操纵的值。 我的页面上有一个输入和一个按钮,单击该按钮会激活与拼接数组有关的JS函数。 我已经建立了带有FOR循环的IF语句,以便查看tier1来检查输入文本是否与数组中的值匹配,如果在tier1中找不到该文本,则应该对tier2和如果输入文本不在任何数组中,则返回tier3并最终显示错误消息。 如果输入文本在tier1中,则该函数可以正常工作,但是由于某种原因,它似乎无法通过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;
    }
}

http://jsfiddle.net/9r73ntsc/1/

这对你有帮助

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

编辑:更正了从tier2 [index]到tier3 [index]的最终IF语句

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM