#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