我遇到循环问题并与JSONObj进行比较。我的代码有效,除非JSONObj中不存在该项。
我想比较2字符串 JSONObj 与 res 不存在在myTextarea2中给我一条消息,如输入 BBB 不存在< / p>
我试过boolen var isNomatch = ((JSONObj[i] == res[b]))
if (isNomatch == false)
我认为这个想法是错误的
或
if((JSONObj[i] !== res[b])){
我的for循环是奇数
Html头
<input type="text" id="myText" value="26B,26N,245">
<button onclick="myFunction()">ok</button>
<br>
<textarea id="myTextarea">Item</textarea >
<br>
<textarea id="myTextarea2"></textarea >
的Javascript
var JSONObj = [
{"nummer":"26B", "item":"26B) Sonic Screwdriver\n\n"},
{"nummer":"26N", "item":"26N) Pizza\n\n"},
{"nummer":"245", "item":"245) I need Coffe\n\n"}
]
function myFunction(){
var str = document.getElementById("myText").value;
var res = str.split(",");
for(var b = 0; b < res.length; b++) {
for(var i = 0; i < JSONObj.length; i++) {
//Here is the problem
if((JSONObj[i] !== res[b])){
var str2 = res[i];
var text2 = [text2,str2].join("");
document.getElementById("myTextarea2").value =text2;
}
//this one's OK
if (JSONObj[i].nummer === res[b]){
var str1 = JSONObj[i].item;
var text1 = [text1,str1].join("");
document.getElementById("myTextarea").value =text1;
document.getElementById("myTextarea").cols = "100";
document.getElementById("myTextarea").rows = "20";
}
}
}
}
答案 0 :(得分:0)
正如您已经注意到存在问题的部分
//Here is the problem
if((JSONObj[i] !== res[b])){
var str2 = res[i];
var text2 = [text2,str2].join("");
}
您正在尝试比较某个对象是否不等于字符串,该字符串始终为true
。
将语法更改为
if(JSONObj[i].nummer !== res[b]){
我在你的代码中看到了另一个问题。这部分
//this one's OK
if (JSONObj[i].nummer === res[b]){
var str1 = JSONObj[i].item;
var text1 = [text1,str1].join("");
}
在for循环之外,如何访问i
的索引值。既然你说它的工作原理,你在这里发布的代码不是你真正拥有的代码,或者你的代码根本不起作用。