javascript中的数组和if语句存在问题
Having issues with an array and if statment in javascript
我正在尝试制作一个包含100个门的数组的程序。我做了一个可能不正确的数组。我希望所有100扇门都被解读为关闭。
为此,我制作了c = closed
和o = open
。我的问题是if语句。
我希望第一个语句从第二个门开始,每2个向上,就像一样
2 4 6 8
等等。每次它到达一扇门时,它都需要打开它。然后我需要另一个if语句,用三个ie 3 6 9 12
等等,
当它到达一扇门时,它需要关上打开的门,打开关闭的门。我的问题是,我如何获得if语句来查看列表中的每2个和每3个?
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Locker</title>
<script>
var lockers = [c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c];
var c = closed
var o = open
function everyTwo(openlockers){
</script>
</head>
<body></body>
</html>
JS Fiddle Demo
// Boolean. If true, the door is open, if false, it is closed
var o = false,
lockers = [o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o,
o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o,
o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o,
o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o,
o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o, o],
count = lockers.length;
function everyN(n){
for(var i=n-1; i<count; i+=n){
// reverse the state (open / closed)
lockers[i] = !lockers[i];
}
}
将everyN(n)
函数与所需数字(例如2或3)一起使用:
// custom function to display the lockers (See in JS Fiddle)
displayLockers('Initial state');
everyN(2);
displayLockers('Every Two');
everyN(2);
displayLockers('Every Two + Every Two = Initial state');
everyN(3);
displayLockers('Every Three');
everyN(2);
displayLockers('Every Three + Every Two');
一个脚本,允许您每次调用选择打开/关闭哪个储物柜。。将打开更改为关闭,反之亦然。。
<script>
var c = "closed";
var o = "open";
var lockers = [c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c,
c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c, c];
function openLockers(lockerArray,interval) {
var newArray = lockerArray;
for (var i = 0; i <= (newArray.length - 1); i++) {
if ((i+1) % interval === 0) {
newArray[i] = (newArray[i] == c) ? newArray[i] = o : newArray[i] = c;
}
}
return newArray;
};
lockers = openLockers(lockers,2);
</script>
不确定这是否是你想要的。。我推测您会希望在同一数据上多次迭代运行该函数。
首先,您应该知道必须定义一个变量,然后才能在数组中使用它,因此lockers
数组中的c
将包含一组undefined
值。以下是您可能正在寻找的内容。
function openLockers(lockerCount, start, every){
var l = lockerCount, a = [];
for(var i=0; i<l; i++){
a[i] = false;
}
for(var i=start; i<l; i+=every){
a[i] = true;
}
return a;
}
// 100 lockers open every 2 starting at Array element 1, which is the second Array element
var lockers = openLockers(100, 1, 2);
lockers
阵列中的true
值表示打开的储物柜,而false
值表示关闭的储物柜。请注意,start
是一个数组编号。
相关文章:
- 执行 If 语句,仅当元素存在时
- javascript中的数组和if语句存在问题
- 使用javascript中的if和else语句来显示图像(如果图像不存在,则显示其他图像)
- Simple Javascript if语句中存在语法错误
- JavaScript 中的 IF 语句存在问题
- 检查布尔键是否存在并将其包含在 if 语句中的最有效方法
- 用于确定是否存在多个变量的 if 语句简写
- Chrome 的开发工具或 Firebug 中是否存在“设置下一个语句”功能?
- 如何根据属性的存在将条件语句添加到指令中
- 是否存在使用“;goto;javascript中的switch语句内部
- JavaScript开关语句中存在语法错误
- 在使用javascript的if语句中使用字符串作为布尔值是否存在任何缺陷
- 检查if语句中是否存在带有data属性的span
- 测试if语句的存在性和正确值
- 当赋值语句存在时,在javascript文件中给出命名空间
- 如何在jQuery中添加if语句来检查JSON文件中是否存在属性
- 函数一旦被调用,即使在经过if语句测试之后也会持续存在
- 用于检查JSON文件(或mongoDB)中是否存在user的条件语句
- 在node.js中使用带有discord bot的语句存在问题
- 为什么这个简单的javascript语句不能检查变量是否存在?