javascript - 2 个数组之间的匹配值必须将选项 HTML 设置为禁用

标签 javascript html html-select

我是 JavaScript 新手。我有 2 个数组,如何匹配它们并返回 HTML。如果两个数组中有匹配的值,则选择选项将被禁用。 例如:

var array1 = ["8:00AM", "9:00AM", "10:00AM","11:00AM",]
var array2 = ["11:00AM", "11:00AM", "3:00PM"]

array1.map((el, i) => <option key={i} disabled ={
el.includes(array2) ? true: false
}>{el}</option>))

我希望发生的是,如果两个数组之间存在匹配的值,在本例中为“11:00AM”,它将返回:

<option> 8:00AM</option>
<option> 9:00AM</option>
<option> 10:00AM</option>
<option disabled = {true} > 11:00AM</option>
<option> 12:00PM</option>

类似这样的事情。我当前的方法可以吗?

最佳答案

Array.prototype.includes()的语法是

arr.includes(valueToFind[, fromIndex])

此外,您还可以使用 Template strings如下:

var array1 = ["8:00AM", "9:00AM", "10:00AM", "11:00AM", ]
var array2 = ["11:00AM", "11:00AM", "3:00PM"]

const element = document.querySelector('select');
element.innerHTML = array1.map((el, i) =>
  `<option key=${i} ${array2.includes(el) ? 'disabled': ''}>${el}</option>`
).join('');
<select>
</select>

关于javascript - 2 个数组之间的匹配值必须将选项 HTML 设置为禁用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59101528/

相关文章:

javascript - 如何在 safari 中以编程方式隐藏打开的选择框中的选项?

javascript - 删除不起作用(保存后无法删除数据)

php - 从另一个目录引用 CSS 文件

javascript - 选择下拉选项时显示空格 - angularjs

javascript - 如何使用 jquery 查找多选标签的最新选定项目?

asp.net - 当内容更改时如何清除现有的下拉列表项?

javascript - 如何将驱动程序控制从顶部窗口切换到 iframe#mainFrame

html - 影响其一侧元素的一个元素的边距

html - 将列表内容与页面中心对齐

javascript - 如何使用 chartist js 在同一图表中相对拉伸(stretch)两个具有不同数量索引的系列?