检查key是否不在data中

Javascript - check if key is not in data

本文关键字:data key 是否 检查      更新时间:2023-09-26

我正在尝试创建一个函数,让我知道我的键是否在我的数据中。

data = [{
  "1" : ["1007","1020"],
  "2" : ["1200","1493"],
  "3" : ["6754","8652"],
}]
document.getElementById("input").addEventListener("keyup", myFunction);
function myFunction() {
    var value = document.getElementById('input').value;
    for (var i = 0; i < data.length; i++) {
        for (var key in data[i])
        {
            if (key in data[i]) {
                if (data[i][key].indexOf(value) !== -1){
                    document.getElementById('text').innerHTML = key;
                } 
            }
        }
    }
}
<div id="text"></div>
<input id="input" />

这段代码所做的是检查插入到输入中的数字是否在数据中,并将他的组号显示到div中。但是如果数字不在数据中怎么办?我希望能够显示它为'0'在div如果数字不存在在我的数据

data = [{
  "1" : ["1007","1020"],
  "2" : ["1200","1493"],
  "3" : ["6754","8652"],
}]
document.getElementById("input").addEventListener("keyup", myFunction);
function myFunction() {
    var value = document.getElementById('input').value;
    var foundIt = false;
    for (var i = 0; i < data.length && !foundIt; i++) {
        for (var key in data[i])
        {
            if (key in data[i]) {
                if (data[i][key].indexOf(value) !== -1){
                    document.getElementById('text').innerHTML = key;
                    foundIt = true;
                } 
            }
        }
        if (!foundIt) {
            document.getElementById('text').innerHTML = 0;
        }
    }
}
<div id="text"></div>
<input id="input" />

使用以下优化版本:

data = [{
  "1" : ["1007","1020"],
  "2" : ["1200","1493"],
  "3" : ["6754","8652"],
}]
document.getElementById("input").addEventListener("keyup", myFunction);
function myFunction(el) {
    var value = el.target.value, obj = data[0], keys, key = 0;
    if (value) {
    	keys = Object.keys(obj);
        keys.forEach(function(k){
          if (obj[k].indexOf(value) !== -1) key = k;
        });
    	document.getElementById('text').innerHTML = key;
    }    
}
<div id="text"></div>
<input id="input" />