如何在jQuery中将多选月份数组与年份值拼接成指定格式?
解决方法:拼接多选月份与年份成指定格式
嘿,我明白你要做的事了——把多选的每个月份和单个年份组合成Jan-2017 Feb-2017这样的格式对吧?其实不需要绕弯路用$.each(),咱们可以利用你已经用到的map()方法直接搞定,或者用更简洁的数组方法处理。
方案一:在获取月份时直接拼接
既然你已经用map()来提取选中的月份文本,那可以在这个步骤里直接把年份拼上去,一步到位:
// 先获取选中的年份 const AssignedYear = $('#dlAssignedYear').val(); // 获取选中的月份并直接拼接年份 const formattedMonthYear = $('#dlAssignedMonth :selected').map(function () { return `${$(this).text()}-${AssignedYear}`; }).get(); // 把数组转成空格分隔的字符串 const finalResult = formattedMonthYear.join(' ');
方案二:先获取月份数组,再统一处理
如果你已经单独拿到了AssignedMonth数组,也可以事后用数组的map()方法(原生JS或jQuery的都可以)来处理:
// 你的原有代码 const AssignedMonth = $('#dlAssignedMonth :selected').map(function () { return $(this).text(); }).get(); const AssignedYear = $('#dlAssignedYear').val(); // 处理数组并拼接 const formattedMonths = AssignedMonth.map(month => `${month}-${AssignedYear}`); const finalResult = formattedMonths.join(' ');
为什么你之前用$.each()没成功?
如果一定要用$.each(),记得它只是遍历数组,不会自动返回新数组,你需要手动创建一个数组来存储拼接后的结果:
const AssignedMonth = $('#dlAssignedMonth :selected').map(function () { return $(this).text(); }).get(); const AssignedYear = $('#dlAssignedYear').val(); const formattedMonths = []; $.each(AssignedMonth, function(index, month) { formattedMonths.push(`${month}-${AssignedYear}`); }); const finalResult = formattedMonths.join(' ');
这样finalResult就是你想要的Jan-2017 Feb-2017 Mar-2017格式啦!
内容的提问来源于stack exchange,提问作者Sonali
相关产品推荐
相关产品推荐

