題目如下:
將下列輸入資料整合成期望的輸出結果。
輸入資料:
const userIds = [‘U01’, ‘U02’, ‘U03’]
const orderIds = [‘T01’, ‘T02’, ‘T03, ‘T04’]
const userOrders = [
{ userId: ‘U01’, orderIds: [‘T01’, ‘T02’] },
{ userId: ‘U02’, orderIds: [] },
{ userId: ‘U03’, orderIds: [‘T03’] },
]
const userData = { ‘U01’: ‘Tom’, ‘U02’: ‘Sam’, ‘U03’: ‘John’ }
const orderData = {
‘T01’: { name: ‘A’, price: 499 },
‘T02’: { name: ‘B’, price: 599 },
‘T03’: { name: ‘C’, price: 699 },
‘T04’: { name: ‘D’, price: 799 }
}
輸出結果:
const result = [
{
user: { id: ‘U01’, name: ‘Tom’ },
orders: [{ id: ‘T01’, name: ‘A’, price: 499 },
{ id: ‘T02’, name: ‘B’, price: 599 },
],
},
…,
]
JS解
有找到JS的解法,求Python的解法,非常感謝!
userIds = ['U01', 'U02', 'U03']
orderIds = ['T01', 'T02', 'T03', 'T04']
userOrders = [
{ 'userId': 'U01', 'orderIds': ['T01', 'T02'] },
{ 'userId': 'U02', 'orderIds': [] },
{ 'userId': 'U03', 'orderIds': ['T03'] },
]
userData = { 'U01': 'Tom', 'U02': 'Sam', 'U03': 'John' }
orderData = {
'T01': { 'name': 'A', 'price': 499 },
'T02': { 'name': 'B', 'price': 599 },
'T03': { 'name': 'C', 'price': 699 },
'T04': { 'name': 'D', 'price': 799 }
}
//以下為解法
result = []
for item in userOrders:
order_list = []
for i in item['orderIds']:
order_list.append({'id':i, 'name':orderData[i]['name'], 'price':orderData[i]['price']})
temp = {'user': {'id':item['userId'],'name':userData[item['userId']]},
'orders': order_list}
result.append(temp)
print(result)
這樣看看行不行