Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 选择天数随机排序,查找最早和最晚_Javascript_Arrays - Fatal编程技术网

Javascript 选择天数随机排序,查找最早和最晚

Javascript 选择天数随机排序,查找最早和最晚,javascript,arrays,Javascript,Arrays,我有一系列的日子: let days = [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' ] 显然,上面的键是从0到6。我使用这些天来生成一个列表,然后用户可以从该列表中选择和取消选择天。因此,如果他们取消选择星期一,然后选择星期天,我现在有一个已选择的数组: let selected = [ 'sunday', 'tuesday', 'wednesday', 'thursday',

我有一系列的日子:

let days = [ 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday', 'sunday' ]
显然,上面的键是从0到6。我使用这些天来生成一个列表,然后用户可以从该列表中选择和取消选择天。因此,如果他们取消选择星期一,然后选择星期天,我现在有一个
已选择的
数组:

let selected = [ 'sunday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday' ]
然后,我想格式化所选日期并将其显示给用户,但当然,使用下面的代码,我会得到星期日-星期六,而实际上我想要星期二-星期日

let dayOne = this.selected[0];
let dayTwo = this.selected[this.selected.length - 1];

if (dayOne === undefined && dayTwo === undefined) return;

return dayOne.charAt(0).toUpperCase() + dayOne.slice(1) + ' - ' + dayTwo.charAt(0).toUpperCase() + dayTwo.slice(1);
做这件事的好方法是什么

我的建议:

使用一个简单的整数列表[0…6],然后使用它。我很确定你有7个复选框,其中包含了工作日名称作为值。将数字用作值

然后,当需要具有日期名称的数组时,请执行以下操作:

const weekdays=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”];
设selected=[5,2,4,1]//未排序数组
selected.sort()//小心点
让selecteddays=selected.map(d=>weekdays[d]);
console.log(选择的日期)我的建议:

使用一个简单的整数列表[0…6],然后使用它。我很确定你有7个复选框,其中包含了工作日名称作为值。将数字用作值

然后,当需要具有日期名称的数组时,请执行以下操作:

const weekdays=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”];
设selected=[5,2,4,1]//未排序数组
selected.sort()//小心点
让selecteddays=selected.map(d=>weekdays[d]);

console.log(选择的日期)
您可以通过比较原始
数组中的索引进行排序

let days=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
let selected=[‘星期六’、‘星期五’、‘星期三’]
选中。排序((a,b)=>days.indexOf(a)-days.indexOf(b))

console.log(选中)
您可以通过比较原始
数组中的索引进行排序

let days=[“周一”、“周二”、“周三”、“周四”、“周五”、“周六”、“周日”]
let selected=[‘星期六’、‘星期五’、‘星期三’]
选中。排序((a,b)=>days.indexOf(a)-days.indexOf(b))

console.log(已选)
@Artyom首先是什么原因导致
已选
阵列出现故障?@charlietfl通过用户取消选择并选择不同的日期,我只需推送或拼接它们,具体取决于它们是否已在阵列中。
days
数组保持不变,是所选的
数组发生了变化。@Artyom首先是什么原因导致所选的
days
数组出现故障?@charlietfl用户取消选择并选择不同的日期,我只是推送或拼接它们,取决于它们是否已经在数组中。
days
数组保持不变,更改的是所选的
数组。谢谢,实际上我更喜欢另一个答案。索引可能更适合使用。谢谢,实际上我更喜欢另一个答案。使用索引可能更好。在没有数字排序回调的数字数组上使用
sort()
时应小心。它在这里起作用是因为范围非常小,但如果范围变为1-20就不起作用了。在没有数字排序回调的情况下,在数字数组上使用
sort()
。它在这里工作,因为范围很小,但如果它去1-20将不起作用