Как искать подстроки в строках в массиве и добавлять соответствующие результаты в новый массив - PullRequest
0 голосов
/ 07 августа 2020

Почему, когда я пытаюсь найти подстроки в пределах значений cardDescs и консоль регистрирует результаты, консоль просто регистрирует пустой массив

const cardDescs = [];

$.getJSON("https://db.ygoprodeck.com/api/v7/cardinfo.php", null, function(result){
  var i = 0;
  for (var i = 0; i <= 10767; i++){
    (cardDescs).push(result["data"][i]["desc"])
  }
})




function summonCardToFieldByName() {
  var cardName = document.getElementById('cN').value;
  const useableCards = [];
  for (description in cardDescs){
    if (description.includes("Special Summon 1 \""+cardName+"\" from your Deck")){
      useableCards.push({description});
    }
  }
  console.log(cardDescs[132]);
  console.log(useableCards);

}

Соответствующий релевантный HTML

<form id="cardSearch">
          <input type="text" size="12" id="cN" />
          <input type="button" onclick="showChosenCard(); summonCardToFieldByName();" value="Submit Card" />
 </form>

Ответы [ 2 ]

0 голосов
/ 07 августа 2020

Я заставил его работать, используя для l oop вместо for / in l oop и pu sh указанный c индекс из массива

    const cardDescs = [];

$.getJSON("https://db.ygoprodeck.com/api/v7/cardinfo.php", null, function(result){
  var i = 0;
  for (var i = 0; i <= 10767; i++){
    (cardDescs).push(result["data"][i]["desc"])
  }
})


    function summonCardToFieldByName() {
  var cardName = document.getElementById('cN').value;
  const useableCards = [];
  for (var i = 0; i <= 10767; i++){
    if (cardDescs[i].includes("Special Summon 1 \""+cardName+"\" from your Deck")){
      useableCards.push(cardDescs[i]);
    }
  }
0 голосов
/ 07 августа 2020

Я не вижу, чтобы вы вызывали эту функцию до того, как выполните логирование консоли, так что это может быть проблемой, вы никогда не заполняете массив пригодными для использования картами перед выходом из системы.

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