#javascript #jquery #json #loops
#javascript #jquery #json #циклы
Вопрос:
Попытка сопоставить значение со значением JSON путем записи цикла for, но каждый раз после завершения цикла возвращается только значение 2345. Где я ошибаюсь, кто-нибудь может мне помочь. И у меня есть термин, который динамически генерирует строковое значение.
var mKey = doc.search.searchBy.split(",")[0].split("=")[1].replace(/s /, "").toLowerCase();
JSON:
{
"records" : {
"cat1" : [
{
"id" : 1234,
"label":"a"
},
{
"id" : 2345,
"label":"b"
}
],
"cat2" : {
"id" : 12345,
"label" : "c"
}
}
}
JS:
var array = doc.records.cat1;
for (var i=0; i<array.length; i ) {
var oID = array[i].id.toString();
}
if (oID === "2345" amp;amp; mKey=="Apple") {
console.log("Apple");
break;
}
else if (oID === "1234" amp;amp; mKey=="Banana") {
console.log("Banana")
}
else {
console.log('other fruits');
}
Комментарии:
1. это так, потому что первая сущность cat1 не имеет такого термина, как id, также включает в себя операторы if в цикле for .
Ответ №1:
Вам нужно поместить свой if
оператор в for
цикл так, чтобы он относился к текущей итерации:
var array = doc.records.cat1;
for (var i = 0; i < array.length; i ) {
var oID = array[i].id.toString();
if (oID === "2345") {
console.log("success");
}
else if (oID === "1234") {
console.log("error")
}
else {
console.log('other');
}
}
Обратите внимание, что break
оператор не имеет значения внутри if
блока.
Ответ №2:
Я думаю, вы замкнули свой цикл не в том месте
for (var i=0; i<array.length; i ) {
var oID = array[i].id.toString();
if (oID === "2345") {
console.log("success");
break;
}
else if (oID === "1234") {
console.log("error")
}
else {
console.log('other');
}
}
Ответ №3:
Вся структура if попадает в цикл for
var array = doc.records.cat1;
for (var i=0; i<array.length; i ) {
var oID = array[i].id.toString();
if (oID === "2345" amp;amp; mKey=="Apple") {
console.log("Apple");
break;
}
else if (oID === "1234" amp;amp; mKey=="Banana") {
console.log("Banana")
}
else {
console.log('other fruits');
}
}
Комментарии:
1. в первый раз он возвращает условие if, а также условие else.