为了账号安全,请及时绑定邮箱和手机立即绑定

如何比较数组中的项目并替换,并在特定索引处设置索引?

如何比较数组中的项目并替换,并在特定索引处设置索引?

一只甜甜圈 2022-01-07 19:03:42
下面是在 html 和简单的 JavaScript 中运行代码以在 select 元素中显示项目。目前选择的项目来自options数组,还有一个名为days的数组在这里,我想将数组选项与天数以及任何项目索引到天数相似的天数进行比较,我想将它们放入选项数组中。因此,在比较数组之后,我的选项数组将类似于天数组。因此下拉菜单应按顺序显示项目,例如“日”、“周”、“月”、“年”、“六个月”,这应该来自选项数组var options = ["day", "yearly","week", "sixmonth",'month'];var days = ['day','week','month','yearly','sixmonth']var s = document.getElementById("selectCity");for (var i = 0; i < options.length; i++) {  s.innerHTML += `<option value=${i}> ${options[i]}</option>`;} <select id="selectCity">        <option>Choose a City</option>      </select>
查看完整描述

2 回答

?
墨色风雨

TA贡献1853条经验 获得超6个赞

假设 days 是选项的子集,并且您希望所有选项数组值都按照天数的项目索引进行排序。并且选项数组中的任何额外项目最终都会按照它们的出现顺序出现。


这是代码


      var options = ["day", "yearly","week", "sixmonth",'month',"newMonth"];

      var days = ['day','week','month','yearly','sixmonth']

      var sorted=days.filter(val=>options.includes(val))

      options = options.filter(val => !days.includes(val))

      sorted.push(...options)

      console.log(sorted)

      var s = document.getElementById("selectCity");

      for (var i = 0; i < sorted.length; i++) {

           s.innerHTML += `<option value=${i}> ${sorted[i]}</option>`;

      }


查看完整回答
反对 回复 2022-01-07
?
慕雪6442864

TA贡献1812条经验 获得超5个赞

我认为选项是天的子集,并且您希望对选项进行排序,使其与天具有相同的顺序。


这是一个例子:


var options = ["day", "yearly","week", "sixmonth",'month'];


var days = ['day','week','month','yearly','sixmonth'];


var sortedOptions = options.sort((a, b) => days.indexOf(a) - days.indexOf(b))


var s = document.getElementById("selectCity");

for (var i = 0; i < sortedOptions.length; i++) {

    s.innerHTML += `<option value=${i}> ${sortedOptions[i]}</option>`;

}


查看完整回答
反对 回复 2022-01-07
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信