Как вернуть данные не [объект объекта] JS

#javascript

Вопрос:

Я пытаюсь напечатать только списки и задачи, которые я получаю [объект объекта]

вот мой код :

 const users = {  user1: {  lists: [  {  id: 0,  name: "Work",  tasks: [  {  id: 0,  task: "task to do",  },  {  id: 1,  task: "task to do",  },  ],  },  {  id: 1,  name: "Holiday",  tasks: [  {  id: 0,  task: "task to do",  },  {  id: 1,  task: "task to do",  },  ],  },  {  id: 3,  name: "New List",  tasks: [],  },  ],  }, };  

и это то, что я пытался:

 $.each(users, function (key, value) {  const keys = key;  console.log(keys)  let test = users[key];  console.log(test)  $.each(test, function (key, value) {  value;  console.log(value)  $.each(value, function (key, value) {  value.name  document.write(value.name)  document.write(value.tasks)  })  }); });  

это то, что он возвращает:

Работа[объект-объект],[объект-объект]Праздник[объект-объект],[объект-объект]Новый список

мои вопросы:

  • как я возвращаю список в одиночку и задачи в одиночку?
  • есть ли какие-либо проблемы с моей структурой данных?

я всего лишь новичок

Ответ №1:

Во-первых, я попрошу вас стараться не использовать jQuery ( $ ) для всего, когда это не нужно.

Во-вторых, у вас есть переменная с именем users , которая, как я думаю, должна быть массивом, но у вас она записана как объект с ключом. Возможно, стоит разобраться.

В любом случае, я постараюсь помочь вам с «только списком» и «только задачами» — всякой ерундой!

 const users={user1:{lists:[{id:0,name:"Work",tasks:[{id:0,task:"task to do"},{id:1,task:"task to do"}]},{id:1,name:"Holiday",tasks:[{id:0,task:"task to do"},{id:1,task:"task to do"}]},{id:3,name:"New List",tasks:[]}]}}  const allLists = []   // id is "user1", user is the user-object. for(const [id, user] of Object.entries(users)) {  const lists = user.lists  for(const list of lists) {  allLists.push(list)  } }   console.log(`ALL LISTS: ${allLists}`) // Lots of "[object Object]" console.log(`ALL LISTS: ${JSON.stringify(allLists)}`) // This one works