您好,正在使用javascript:数据将被映射。关键将是搜索目标。如果您在数据中找到该目标,请返回该词的值并将其显示在页面上。
我无法使用它的搜索功能。就像,如果我想搜索Harry,它应该给我结果“一个古老的英语单词”。
对此有什么建议吗?
function myfunction() {
var data = new Map();
data.set("Harry", "something.");
data.set("Corhoo", "corn.");
data.set("Elephant", "big ");
var keys = Object.keys(data);
//Need help with this loop, to get the search work
for (var i = 0; i < keys.length; i++) {
var key = keys[i];
if (keys[i] == "Harry") {
document.getElementById("result").innerHTML = data.get("Harry");
}
//console.log(data[keys[i]]);
}
}
Enter: <input type="text" />
<p id="result"></p>
<p id="result2"></p>
<input type="button" value="SearchIt" onclick="myfunction()" />
答案 0 :(得分:1)
如果您从keys
执行var keys = Object.keys(data);
的console.log,它将给出一个空数组。您可能不需要做Object.keys
function myfunction() {
var data = new Map();
data.set("Harry", "An old English word that means Potter.");
data.set("Corhoo", "The Gaelic version of America Cornhole.");
data.set("Elephant", "A largest plant resembling an Ele");
if (data.has('Harry')) {
document.getElementById("result").innerHTML = data.get("Harry");
}
}
Enter: <input type="text" />
<p id="result"></p>
<p id="result2"></p>
<input type="button" value="SearchIt" onclick="myfunction();" />
答案 1 :(得分:1)
为什么要使用循环?最好使用Map.proptype.has
方法:
Enter: <input type="text" id="key"/>
<p id="result"></p>
<p id="result2"></p>
<input type="button" value="SearchIt" onclick="search()" />
var data = new Map();
data.set("Harry", "An old English word that means Potter.");
data.set("Corhoo", "The Gaelic version of America Cornhole.");
data.set("Elephant", "A largest plant resembling an Ele");
function search(key) {
var key = document.getElementById('key').value;
var result = document.getElementById("result");
if(data.has(key)) {
result.innerHTML = data.get(key);
} else {
result.innerHTML = "No key found";
}
}
答案 2 :(得分:0)
也许我对这个问题有误解,但这应该可以映射出键并在找到键后返回值。
const data = {
'Harry': 'An old English word'
}
Object.keys(data).map(key => {
if (key === 'Harry') {
return data[key]
}
}
ETA:
如果使用Map创建键值对,请改用以下方法:
data.forEach(item => {
if(item[0] === 'Harry') {
document.getElementById("result").innerHTML = item[1]
// or whatever you want to run if 'Harry' is found
}
}
用于搜索特定术语:
const searchTerm = 'Harry'
data.forEach(item => {
if(item[0] === searchTerm) {
document.getElementById("result").innerHTML = item[1]
// or whatever you want to run if 'Harry' is found
}
}