[英]Looping through array of booleans to determine which object to include in another array
[英]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.