我是 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/