如何将数组数字映射到定时值
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将数组数字映射到定时值相关的知识,希望对你有一定的参考价值。
你好,我有一个数字阵列
let timearray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
但问题是我在DOM中显示数组的值,但我想让它的值被相应地映射。例如:如果0 -> 12:00am,如果它的18 -> 6:00pm。我怎样才能做到这一点?任何想法的家伙?我只能想到使用if else映射。但这似乎很丑陋。任何想法的家伙?
答案
你需要这样定义你的数组。
const timearray = [
'12:00am',
'01:00am',
'02:00am',
'03:00am',
...
'10:00pm',
'11:00pm',
]
console.log(timearray[3])
// 03:00am
另一答案
下面是一个例子 map
功能,您可以使用(并根据您的需求进行改进)。
const timeArray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
const result = timeArray.map(t => {
const ampm = t % 12;
return `${ampm === 0 ? 12 : ampm}:00${t >= 12 ? 'pm' : 'am'}`;
});
console.log(result)
另一答案
这正是 Array.map
是为了。
let timearray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
let mapped = timearray.map(function(value) {
switch (value) {
case 0: return "12:00am"
// ..
case 18: return "6:00pm"
}
})
或者你可以使用一个对象
let timearray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23]
let map = {
0: "12:00am",
18: "6:00pm"
}
let mapped = timearray.map(function(value) {
return map[value]
})
如果你只是想把24小时的时间转换为12小时的时间。而不是映射的值 然后用谷歌搜索 "24 hour time to 12 hour time"
你就会找到答案。
另一答案
要将整数转换成12小时格式的小时,可以使用安培格式。
let timearray = [0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23];
timearray.forEach(x => {
var suffix = x >= 12 ? "pm":"am";
hours = ((x + 11) % 12 + 1) + suffix;
console.log(hours);
}
);
另一答案
你也可以考虑利用一个库,如, moment.js (https:/momentjs.com。)在这种情况下,这里是一个使用的例子。
var time = moment(2,"h:hh A");
console.log(time);
// 02:00am
这种方法的好处是,如果需要的话,你可以很容易地对输出进行格式化。
以上是关于如何将数组数字映射到定时值的主要内容,如果未能解决你的问题,请参考以下文章