Как перебрать динамически созданный массив в jQuery? - PullRequest
1 голос
/ 10 апреля 2020

У меня есть массив, который создается из вызова API. Вот как я делаю этот массив -

var data5 = ko.observableArray(); /*Most important thing to make the data array observable otherwise it will not show the data of the REST API*/
var arrow = [];

function practiceData() {
  // var data = [];/**/

  $.getJSON("REST API").then(function(dataset) {
    $.each(dataset, function(index, value) {
      //console.table((dataset));
      //console.log(value.change);
      data5.push(value); // PUSH THE VALUES INSIDE THE ARRAY.
      arrow.push(value.change);
      console.log("arrow", arrow);
      arrow.forEach(function(value) {
        if (value == 0) {
          $("#triangle-down-small").hide();
          $("#triangle-up-small").hide();
          console.log("rgjak")
          console.log(value);
          //  document.getElementById("navTabBar").style.visibility = "none";
        } else if (value < 0) {
          //  $("#triangle-down-small").hide();
          $("#triangle-up-small").hide();
          console.log("hcdsb")
          console.log(value);
        }
      });
    });
  });
}

console.log (стрелка) -

arrow (1) [0]
arrow (2) [0, 0]
arrow (3) [0, 0, -100]

JSON Структура ответа -

[
{
        "change": 0,
        "count": 6,
        "duration": 4,
        "prevcount": 6,
        "subcategory": "Consultancy"
}
]

Я не в состоянии перебрать массив как для условия if-else, функция .hide () работает только для условия if, а не для else-if. Любая помощь приветствуется. Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 10 апреля 2020

Только для справки, переместите l oop после $ .each. Но нет смысла кодировать, как это. Плохая практика

function practiceData() {
  $.getJSON("REST API").then(function (dataset) {
    $.each(dataset, function (index, value) {
      data5.push(value); // PUSH THE VALUES INSIDE THE ARRAY.
      arrow.push(value.change);
    });
    console.log("arrow", arrow);
    arrow.forEach(function (value) {
      if (value == 0) {
        console.log("rgjak");
        console.log(value);
      } else if (value < 0) {
        console.log("hcdsb");
        console.log(value);
      }
    });
  });
}
0 голосов
/ 10 апреля 2020

Функция массива foreach очень проста и базируется на c, так что в этом нет ничего плохого. Я полагаю, ваша проблема в том, что ваша структура данных не согласована или у вас проблема с logi c в вашем коде. Вы должны всегда проверять, чтобы значения, которые вы вводите в массив, * * * * * * * * * * * * * * * * * * * 100 * * * * * * * * * * * * * *

* *

*, учитывая ваши json ответные данные, [ 0, 0, -100] оба оператора if и else будут выполняться, и обе кнопки будут скрыты. Пока в вашем массиве есть один ноль, обе кнопки будут скрыты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...