【发布时间】:2021-02-07 15:35:04
【问题描述】:
我正在尝试将多个项目发送给我的联系人列表中的多个联系人,我使用嵌套循环,但它只发送每个联系人的最后一个项目,而忽略其余项目, 我不知道我做错了什么。
这是我的数组:
ContactList = ['john','jem'];
itemList = [
{
"ItemTo": 'jhon@gmail.com',
"ItemType": 'type1'
},
{
"ItemTo": 'jem@gmail.com',
"ItemType": 'type2'
}
]
这是我的 JS 代码:
onClick() {
for (let i = 0; i < this.ContactList.length; i++) {
for (let j=0; j<this.itemList; j++){
let messageToSend = this.extractMessageDetails(
this.ContactList[i],
this.itemList[j]
);
}
}
}
extractMessageDetails(contact, item) {
const ItemTo = contact.contactId;
const ItemType = item.type;
const itemToSend = {
"ItemTo": ItemTo,
"ItemType": ItemType
}
return itemToSend;
}
【问题讨论】:
-
let messageToSend = this.extractMessageDetails(this.ContactList[i], this.itemList[j]);在每个循环中都会被覆盖。改用地图加连接 -
投票以关闭为 不可重现或由错字引起虽然类似的问题可能是这里的主题,但这个问题的解决方式不太可能帮助未来的读者。
-
您的代码什么都不做,您可能会创建要在循环中发送的项目,但您没有对它做任何事情,它在退出循环范围时被删除,尝试将结果附加到某个数组或其他东西。
-
好的,所以直接调用你的数组而不是使用这个。 ,希望你能明白,因为它不是一个类,所以直接调用数组而不加上 this 是一种改进,逻辑似乎很好,但你缺少添加另一个数组以进行更多说明,比如你在哪里提到联系人 ID 和您的联系人 JSON 在哪里?并取出结果,否则它只会给你最后一个结果。
标签: javascript angular