簡體   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