javascript - 检查数组 onchange 中的重复值
问题描述
我需要检查输入数组中的 2 个值是否相同,以删除重复项。
我尝试了一个比较 i 的 for 循环
const input1 = document.querySelector("#a")
const input2 = document.querySelector("#b")
const unsafeInputs = [input1, input2]
function checkInputs() {
for (let i = 0, j = unsafeInputs.length; i < j; i++) {
if (unsafeInputs[i].value === unsafeInputs[j].value) {
console.log("values are same")
unsafeInputs[i].value = ""
}
}
}
input1.onchange = function() {
checkInputs()
}
<input id="a">
<input id="b">
解决方案
您可以使用 2 个for
循环并检查是否有任何 2 个输入i
和j
(i
不等于j
)具有相同的值。如果它们具有相同的值,您可以从 input 中清除重复值j
。
const input1 = document.querySelector("#a")
const input2 = document.querySelector("#b")
const input3 = document.querySelector("#c")
const unsafeInputs = [input1, input2, input3]
function checkInputs() {
for (let i = 0; i < unsafeInputs.length; i++) {
for (let j = 0; j < unsafeInputs.length; j++) {
if (i !== j && unsafeInputs[i].value === unsafeInputs[j].value) {
console.log("values are same")
unsafeInputs[j].value = ""
}
}
}
}
unsafeInputs.forEach(input => input.onchange = checkInputs);
<input id="a">
<input id="b">
<input id="c">
推荐阅读
- ios - 我们如何将访问令牌传递给 Web 视图中的标头
- python - 如何更改最后一个数组维度?
- r - 如何在R中乘以不同大小列表的向量
- java - 如何修改使 IllegalArgumentException: column '_id' 不存在的光标
- c# - C# .NET WPF 窗口 Mousedown/Keydown 不会触发通过 USB 红外接收器连接的电视遥控器的 4 色按钮关闭
- excel - 读取 excel 时 Spark 出错:org.apache.poi.openxml4j.exceptions.InvalidFormatException
- splunk - Splunk Dropdown 基于来自字符串结果的字段
- java - 在 aws iot 中更新一个东西
- android - 系统对话框,如 ShowMessage,在 Android 上使用旧样式
- ruby - 由于以下原因返回 HTTP 503:请求队列已满(配置的最大大小:100)