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将不起作用