Итак, ребята, я не знаю, как дать топи c этому. У меня проблемы с копированием данных из массива Object в другой вновь созданный массив.
Например, , я хочу скопировать и создать новый array
, содержащий все категории животных. каждого человека в моей базе данных.
people = [
{
name: "Person 1",
animals: [
{ category: "cat" },
{ category: "dog" },
{ category: "fish" }
]
},
{
name: "Person 2",
animals: [
{ category: "dog" },
{ category: "iguana" }
]
},
{
name: "Person 3",
animals: [
{ category: "cat" }
]
}
]
Итак, я создал новый array
с именем animalCategory
для хранения каждой доступной категории.
// declare new array to hold category of animals
let animalCategory = []
Это лог c Я придумал: -
// loop all person available
people.forEach(person => {
// go and loop inside animals array
person.animals.forEach(animal => {
// save new category of animals if animalCategory array is EMPTY
if(animalCategory.length === 0) {
animalCategory.push(animal.category)
}
// if NOT EMPTY, then
else {
// loop and check existing animal categories in animalCategory array
animalCategory.forEach(category => {
// check if MATCH?
if(category === animal.category) {
break // or just continue or will NOT BE SAVE
}
// if NOT MATCH, then
else {
// SAVE new category
animalCategory.push(animal.category)
}
})
}
})
})
// see result
console.log(animalCategory.length)
Но, к сожалению, в результате я получил очень большой массив animalCategory
. И много повторяющихся животных категории. (как показано ниже)
ОБНОВЛЕНО : результат, который я хочу найти: -
animalCategory: [ 'cat', 'dog', 'iguana', 'fish']
Как мне тогда изменить logi c? И есть ли другой способ сделать это?