Для моего сценария мне нужно поместить элементы в массив адресов, который содержит объекты. Я работаю с vue.js.
Моя текущая рабочая функция:
propagateCustomerInfo(selectedOption, id){
// Propagate addresses
this.addresses = selectedOption.addresses
// Propagate contact's addresses
for (var i = selectedOption.contacts.length - 1; i >= 0; i--) {
for (var j = selectedOption.contacts[i].addresses.length - 1; j >= 0; j--) {
let address = selectedOption.contacts[i].addresses[j]
address.contact = selectedOption.contacts[i]
this.addresses.push(address)
}
}
},
объект selectedOption
имеет следующую структуру:
{
addresses: [
{
id: 0,
street: 'My street'
},
{...}
],
contacts: [
{
id: 0,
name: 'Lorem Ipsum',
addresses: [
{
id: 0,
street: 'My street'
},
{...}
],
}
]
}
Помимо помещения объекта адреса каждого контакта в массив this.addresses
, мне нужно добавить контакт к самому адресу для целей многоэлементного рендеринга. Вот почему я делаю address.contact = selectedOption.contacts[i]
Я почти уверен, что это может быть выполнено самым красивым способом с помощью некоторой комбинации картирования / уменьшения, но я не могу понять, как это сделать.
Любая помощь будет по достоинству оценена.
Спасибо!