Разрушить сложный объект - PullRequest
0 голосов
/ 23 октября 2019

Я пытаюсь уничтожить сложный объект, но я не получаю вывод в моей консоли. Я не понимаю почему. Я всегда получаю какой-то Uncaught SyntaxError в браузере. Я пытаюсь понять, что я делаю здесь не так. (РЕДАКТИРОВАТЬ: Я ТОЛЬКО ПЫТАЮСЬ ЗАПИСАТЬ "ХИТЫ" НА КОНСУЛЬТУ БРАУЗЕРА, А НЕ НАПИСАТЬ ИХ В БРАУЗЕР) Вот код:

let catalog = {
  "artists": [
    {
      name: "Journey",
      "hits": [
        "Faithfully",
        "Only the Young",
        "Dont Stop Believing"
      ],
      name: "REO Speedwagon",
      hits: [
        "Keep On Loving You",
        "Time for Me to Fly",
        "Cant Fight This Feeling"
      ],
      name: "Styx",
      hits: [
        "Come Sail Away",
        "Mr. Roboto",
        "Blue Collar Man"
      ]
    }
  ]
};

let { hits } = catalog.artists;

for (x in hits) {
  console.log(hits[x]);
};

Ответы [ 3 ]

0 голосов
/ 23 октября 2019

У этого кода "некоторые" проблемы больше, чем просто "символы первых хитов, которые слишком много :) Я думаю, он хочет иметь множество объектов с артистом и хитами артистов. Кстати, альбом, tracklen и т. д. не хватает чувак! результат:

Journey 
          Faithfully
          Only the Young
          Dont Stop Believing
REO Speedwagon
           Keep On Loving You
           Time for Me to Fly
           Cant Fight This Feeling
Styx
           Come Sail Away
           Mr. Roboto
           Blue Collar Man

Не каждый раз, когда нужен каждый ярлык, быстро или даже отличная идея, чтобы показать, насколько ты крут. во время отладки. По крайней мере, музыкальный вкус не так уж и плох :) Удачи!

0 голосов
/ 23 октября 2019

Мне кажется, я понимаю ваш вопрос. «Хиты» не вложены непосредственно в художников. «Хиты» находятся во множестве объектов художников. Я бы просто использовал Array.map (), чтобы получить массив «hit» из массива «catalog.artists».

var catalog = {
  artists: [{
      name: "Journey",
      hits: [
        "Faithfully",
        "Only the Young",
        "Dont Stop Believing"
      ],
    },
    {
      name: "REO Speedwagon",
      hits: [
        "Keep On Loving You",
        "Time for Me to Fly",
        "Cant Fight This Feeling"
      ],
    },
    {
      name: "Styx",
      hits: [
        "Come Sail Away",
        "Mr. Roboto",
        "Blue Collar Man"
      ]
    },
  ]
};

var hits = catalog.artists.map(x => x.hits);

console.log(hits);
0 голосов
/ 23 октября 2019

Если я правильно понимаю ваш вопрос, вы просто пытаетесь распечатать список хитов от каждого исполнителя. В этом случае я бы сделал следующее:

    let catalog = {
    "artists": [
      {
        name: "Journey",
        hits: [
          "Only the young",
          "Dont Stop"
        ]
      },
      {
        name: "Styx",
        hits: [
          "Come Sail Away",
          "Mr. Roboto"
        ]
      }
    ]
  }

  let artistsArr = catalog.artists;

  function printHits() {
    for (var i = 0; i < artistsArr.length; i++) {
      console.log(artistsArr[i].hits.map(hit => hit))
    }
  }

Это отобразит каждого из ваших исполнителей и напечатает список их хитов при вызове printHits ().

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