Как перебрать массив для объединения данных - PullRequest
0 голосов
/ 20 декабря 2018

Мне нужно перебрать мой массив данных и объединить DogBreedName с DogName и поместить его в новый массив.Примером конечного результата, который я ищу, является немецкий Шепард - Бейли, немецкий Шепард - Джимбо, Блэк Лаб - Вейдер.

Я пытался использовать цикл for для достижения своего результата, но получаю ошибки undefined или возвращенный результат NaN.Я считаю, что я на правильном пути, но мой синтаксис неправильный.Ниже мой массив dogData и цикл for того, что я пробовал.

var dogData = [{
    "DogBreedId": 2,
    "DogBreedName": "German Shepard",
    "DogBreedCount": "German Shepard (2)",
    "Dog": [{
        "DogId": 4,
        "DogBreedId": 2,
        "DogName": "Bailey",
        "Abbreviation": "BY",

      },
      {
        "DogId": 8,
        "DogBreedId": 2,
        "DogName": "Jimbo",
        "Abbreviation": "JO",
      },
    ]
  },
  {
    "DogBreedId": 1,
    "DogBreedName": "Black Lab",
    "DogBreedCount": " (1)",
    "Dog": [{
      "DogId": 1,
      "DogBreedId": 1,
      "DogName": "Vader",
      "Abbreviation": "VD",
    }, ]
  },
]

function dogList() {
  var dogs = [];
  for (var i = 0; i < dogData.length; i++) {
    dogs += dogData[DogBreedName] + "-" + dogData[Dog[DogName]];
    console.log(dogs);
  }
}

1 Ответ

0 голосов
/ 20 декабря 2018

Вам нужно выполнить итерацию правильно, используя его индекс.

obj = dogData[i];

Примерно так:

(function() {
  var dogData = [{
      "DogBreedId": 2,
      "DogBreedName": "German Shepard",
      "DogBreedCount": "German Shepard (2)",
      "Dog": [{
          "DogId": 4,
          "DogBreedId": 2,
          "DogName": "Bailey",
          "Abbreviation": "BY",

        },
        {
          "DogId": 8,
          "DogBreedId": 2,
          "DogName": "Jimbo",
          "Abbreviation": "JO",
        },
      ]
    },
    {
      "DogBreedId": 1,
      "DogBreedName": "Black Lab",
      "DogBreedCount": " (1)",
      "Dog": [{
        "DogId": 1,
        "DogBreedId": 1,
        "DogName": "Vader",
        "Abbreviation": "VD",
      }, ]
    },
  ];

  function dogList() {
    var dogs = [],
      lenDogData = dogData.length, obj, lenDog, objDog, name = "";
    for (var i = 0; i < lenDogData; i++) {
      obj = dogData[i];
      

      if (obj.Dog && obj.Dog.length > 0) { // Check if obj.Dog exists and have items.
        lenDog = obj.Dog.length;

        for (var j = 0; j < lenDog; j++) { // Iterate over obj.Dog array.
          objDog = obj.Dog[j];
          name = obj.DogBreedName;
          name += " - ";
          name += objDog.DogName; // Concat the name (DogBreedName - DogName)
          dogs.push(name);
        }

      }

    }
    return dogs;
  }

  var result = dogList();
  console.log(result);

}());
.as-console-wrapper {
  position: relative !important;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...