对于我的场景,我需要将元素推送到包含对象的地址数组。我正在使用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]
我几乎确定可以通过一些映射/归约组合以最漂亮的方式完成此操作,但是我不知道该怎么做。
任何帮助将不胜感激。谢谢!
如果要将联系人变量中的所有地址组合为地址变量:
this.contacts.map(contact => this.addresses.push(...contact.addresses))
编辑。
注入contact.id和contact.name:
this.contacts.map(contact => {
let temp = []
contact.addresses.map(address => {
temp.push({
name: contact.name,
id: contact.id,
...address
})
})
this.addresses.push(...temp)
})
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句