javascript - 使用循环来缩短此代码 (javascript)

标签 javascript arrays loops

我有一个对应于开门和关门时间列表的数组。我已经能够操纵它来显示我需要的内容。该数组对应于一周内的开门和关门时间。我能够分解数组并列出时间,但我经常重复自己,我想知道是否有更好、更干燥、更干净的方法来做到这一点。

var array = ["Today at 8:00 AM", "Today at 4:00 PM", 
 "Tomorrow at 8:00 AM", "Tomorrow at 4:00 PM", "Thursday at 8:00 AM",
 "Thursday at 4:00 PM", "Friday at 8:00 AM", "Friday at 4:00 PM",
 "Saturday at 10:00 AM", "Saturday at 8:00 PM", "Sunday at 8:00 AM",
 "Sunday at 4:00 PM", "Monday at 8:00 AM", "Monday at 4:00 PM"]

day1 = "Open " + array[0] + " Closed " + array[1]
day2 = "Open " + array[2] + " Closed " + array[3]
day3 = "Open " + array[4] + " Closed " + array[5]
day4 = "Open " + array[6] + " Closed " + array[7]
day5 = "Open " + array[8] + " Closed " + array[9]
day6 = "Open " + array[10] + " Closed " + array[11]
day7 = "Open " + array[12] + " Closed " + array[13]

我承认,在开发方面,循环一直是我的致命弱点。循环是否是稍微压缩此代码的解决方案?如果是这样,如何使用以及使用哪种循环?

我想按天列出它们,类似于我在很长的重复代码中的内容。

最佳答案

您可以使用day作为数组,并使用push将字符串添加到数组中。要访问 day1,请使用 day[0]day2 作为 day[1] 等。

var array = [
    "Today at 8:00 AM", "Today at 4:00 PM",
    "Tomorrow at 8:00 AM", "Tomorrow at 4:00 PM",
    "Thursday at 8:00 AM", "Thursday at 4:00 PM",
    "Friday at 8:00 AM", "Friday at 4:00 PM",
    "Saturday at 10:00 AM", "Saturday at 8:00 PM",
    "Sunday at 8:00 AM", "Sunday at 4:00 PM",
    "Monday at 8:00 AM", "Monday at 4:00 PM"
];

var day = []; // Declare empty array

for (var i = 0, len = array.length; i < len; i += 2) {
    // i  is incremented by 2 for each iteration

    // Push the formed string into the array
    day.push("Open " + array[i] + " Closed " + array[i + 1]);
}
<小时/>

不过,您可以在上面的代码中使用 window 而不是 day ,并将变量添加到 window 中,即全局范围为

window['day' + counter] = '...;

不鼓励这种做法。

我建议您将变量 day 作为参数传递给您需要访问它的函数,但它超出了当前范围。

关于javascript - 使用循环来缩短此代码 (javascript),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32971196/

相关文章:

javascript - Android - 是否可以从 PhoneGap 中包装的应用程序激发 native Intent

c++ - 字符串下标超出范围 - 字符串冒泡排序

linux - 使用 TaskSet 运行 Shell 脚本

Java:将接近的数字与阈值匹配

php - 如何在 PHP 中重复一个数组?

Python 迭代日期列表

java - "Invalid Response"再次选择怎么说? ( java 语)

javascript - 如何处理导航项目的溢出?

javascript - 向下滚动时图像向上移动

javascript - 使用 FileSaver.js 保存 PNG 文件