繁体   English   中英

JavaScript:遍历一个布尔数组

[英]JavaScript: Looping through an array of booleans

我正在寻找遍历一系列布尔值,这些布尔值将根据用户单击的链接而改变。 首先,我初始化它们

var boolean1 = false;
var boolean2 = false;
var boolean3 = false;

接下来,我有包含到新页面链接的字符串。

var link1 = "index.html";
var link2 = "someotherpage.html";
var link3 = "somepage.html";

然后,我将值放在各自的数组中

var booleanArray = new Array(3);
booleanArray[0] = boolean1;
booleanArray[1] = boolean1;
booleanArray[2] = boolean1;

var linkArray = new Array(3);
linkArray[0] = link1;
linkArray[1] = link2;
linkArray[2] = link3;

然后,我具有更改值的函数(将根据用户单击的链接来调用这些值)...

//onlick...
function changeBoolean1()
{
    boolean1 = true;
}
function changeBoolean2()
{
    boolean2 = true
}
function changeBoolean3() 
{
    boolean3 = true;
}

最后,根据哪个方法称为onlick ,将其中一个布尔值设置为false 在这一点上,我想遍历布尔数组,并获取将哪一个设置为false 基于哪一个为false ,将打开相应的链接。

function getChoice()
{
    for(var i = 0; i < booleanArray.length; i++)
    {
        if(booleanArray[i] == true)
        {
            window.location.href = linkArray[i];
            break;
        }
    }
}

但是,该方法不会基于

您需要更改onclick函数以更新数组,而不是原始变量

//onlick...
function changeBoolean1() {
    booleanArray[0] = true;
}
function changeBoolean2() {
    booleanArray[1] = true
}
function changeBoolean3() {
    booleanArray[2] = true;
}

由于布尔值是基元,因此存储在实际数组中的是值,而不是对原始变量的引用(就像您对对象所期望的那样)

像字符串,数字之类的原始类型变量始终按值传递。 因此,您需要在数组中显式设置值或在对象中设置布尔属性。

function changeBool(booleanArray, index){
     booleanArray[index] = true;
}

function getChoice(){
    for(var i = 0; i < booleanArray.length; ++i){
        if(booleanArray[i]){
            window.location.href = linkArray[i];
            break;
        }
    }
}

暂无
暂无

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

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