![](/img/trans.png)
[英]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.