映射2 thexcript中的数组对象
我有 2 个数组对象,通过 CustomerID 链接。结果数组将把 CustomerName 从 Customers 添加到 Licenses。
许可证:
[
{
_id: new ObjectId("625642b73dc060ffc4c16b3e"),
CustomerID: '61c140a22465edbdc9cdb041',
Note: 'Test',
Active: true,
CreatedByUserID: '61c015e926f22813e9e4c3c5',
UpdatedByUserID: '61c015e926f22813e9e4c3c5',
createdAt: 2022-04-13T03:25:43.833Z,
updatedAt: 2022-04-13T03:25:43.833Z,
__v: 0
},
{
_id: new ObjectId("624d05b7c0de23c18c987898"),
CustomerID: '61bc280b3a67511ad62aefc7',
Note: 'Ideapad Testing',
Active: true,
CreatedByUserID: '',
UpdatedByUserID: '',
createdAt: 2022-04-06T03:15:03.669Z,
updatedAt: 2022-04-06T03:15:03.669Z,
__v: 0
}
]
客户:
[
{ Name: 'Test1', id: '61bc280b3a67511ad62aefc7' },
{ Name: 'Test2', id: '61c140a22465edbdc9cdb041' }
]
我想将 CustomerName 键值添加到客户的许可证中,并具有如下结果数组对象:
[
{
_id: new ObjectId("625642b73dc060ffc4c16b3e"),
CustomerID: '61c140a22465edbdc9cdb041',
CustomerName: 'Test2',
Note: 'Test',
Active: true,
CreatedByUserID: '61c015e926f22813e9e4c3c5',
UpdatedByUserID: '61c015e926f22813e9e4c3c5',
createdAt: 2022-04-13T03:25:43.833Z,
updatedAt: 2022-04-13T03:25:43.833Z,
__v: 0
},
{
_id: new ObjectId("624d05b7c0de23c18c987898"),
CustomerID: '61bc280b3a67511ad62aefc7',
CustomerName: 'Test1',
Note: 'Ideapad Testing',
Active: true,
CreatedByUserID: '',
UpdatedByUserID: '',
createdAt: 2022-04-06T03:15:03.669Z,
updatedAt: 2022-04-06T03:15:03.669Z,
__v: 0
}
]
我尝试使用此代码,但没有成功:
Licenses.reduce((acc: Array<object>, curr) => {
const stored = Customers.find(
({ id }) => id === curr.CustomerID
);
if (stored) {
console.log('stored.Name', stored.Name);
curr['CustomerName'] = stored.Name;
acc.push(stored);
}
return acc;
}, []);
I have 2 array object, link by CustomerID. The result array will be add CustomerName from Customers to Licenses.
Licenses:
[
{
_id: new ObjectId("625642b73dc060ffc4c16b3e"),
CustomerID: '61c140a22465edbdc9cdb041',
Note: 'Test',
Active: true,
CreatedByUserID: '61c015e926f22813e9e4c3c5',
UpdatedByUserID: '61c015e926f22813e9e4c3c5',
createdAt: 2022-04-13T03:25:43.833Z,
updatedAt: 2022-04-13T03:25:43.833Z,
__v: 0
},
{
_id: new ObjectId("624d05b7c0de23c18c987898"),
CustomerID: '61bc280b3a67511ad62aefc7',
Note: 'Ideapad Testing',
Active: true,
CreatedByUserID: '',
UpdatedByUserID: '',
createdAt: 2022-04-06T03:15:03.669Z,
updatedAt: 2022-04-06T03:15:03.669Z,
__v: 0
}
]
Customers:
[
{ Name: 'Test1', id: '61bc280b3a67511ad62aefc7' },
{ Name: 'Test2', id: '61c140a22465edbdc9cdb041' }
]
I want add a CustomerName key value to Licenses from Customers and have result array object as below:
[
{
_id: new ObjectId("625642b73dc060ffc4c16b3e"),
CustomerID: '61c140a22465edbdc9cdb041',
CustomerName: 'Test2',
Note: 'Test',
Active: true,
CreatedByUserID: '61c015e926f22813e9e4c3c5',
UpdatedByUserID: '61c015e926f22813e9e4c3c5',
createdAt: 2022-04-13T03:25:43.833Z,
updatedAt: 2022-04-13T03:25:43.833Z,
__v: 0
},
{
_id: new ObjectId("624d05b7c0de23c18c987898"),
CustomerID: '61bc280b3a67511ad62aefc7',
CustomerName: 'Test1',
Note: 'Ideapad Testing',
Active: true,
CreatedByUserID: '',
UpdatedByUserID: '',
createdAt: 2022-04-06T03:15:03.669Z,
updatedAt: 2022-04-06T03:15:03.669Z,
__v: 0
}
]
I tried with this code, but not success:
Licenses.reduce((acc: Array<object>, curr) => {
const stored = Customers.find(
({ id }) => id === curr.CustomerID
);
if (stored) {
console.log('stored.Name', stored.Name);
curr['CustomerName'] = stored.Name;
acc.push(stored);
}
return acc;
}, []);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用:
array.foreach
循环到每个许可证array.find
查找customerId的客户链接you can do it with :
array.forEach
loop to iterate on each licencearray.find
to find the customer link to the customerID