JSON 배열을 두 속성 (name 및 address2)으로 그룹화 한 다음 줄이려고합니다.lodash를 사용하여 여러 그룹핑 적용
{
"clientId": "FOO",
"name": "John Doe",
"address1": "London",
"address2": "1 High Street",
"invoiceNumber": "1234",
"itemDescription": "Item 1",
"itemQuantity": 1
},
{
"clientId": "BAR",
"name": "John Doe",
"address1": "London",
"address2": "1 Oxford Street",
"invoiceNumber": "0987",
"itemDescription": "Item 2",
"itemQuantity": 1
},
{
"clientId": "FOO",
"name": "John Doe",
"address1": "London",
"address2": "1 High Street",
"invoiceNumber": "5678",
"itemDescription": "Item 3",
"itemQuantity": 1
}
이 내가 달성하고 싶은 무엇인가 : 다음은 현재 JSON은
[
{
"clientId": "FOO",
"name": "John Doe",
"address1": "London",
"address2": "1 High Street",
"deliveries": [
{
"invoiceNumber": "1234",
"itemQuantity": 1,
"itemDescription": "Item 1"
},
{
"invoiceNumber": "5678",
"itemDescription": "Item3",
"itemQuantity": 1
}
]
},
{
"clientId": "BAR",
"name": "JohnDoe",
"address1": "London",
"address2": "12 Oxford Street",
"deliveries": [
{
"invoiceNumber": "0987",
"itemDescription": "Item2",
"itemQuantity": 1
}
]
}
]
을 그리고 여기 내가 희망 어떻게 생성하지 않습니다 내가 지금까지 가지고있는 코드입니다 것 :
var groups = _.groupBy(rows, function(value) {
return value.name + '#' + value.address2;
});
var data = _.map(groups, function(group) {
return {
clientId: group[0].clientId,
name: group[0].name,
address1: group[0].address1,
address2: group[0].address2,
deliveries: [{
invoiceNumber: _.map(group,'invoiceNumber'),
itemDescription: _.map(group,'itemDescription'),
itemQuantity: _.map(group,'itemQuantity'),
}]
}
});
그리고 그것은 다음과 같은 출력이 생성
[ { clientId: 'FOO',
name: 'John Doe',
address1: 'London',
address2: '1 High Street',
deliveries: [ [Object] ] } ]
를
lodash _map 함수 내에서 "delivery"객체의 배열을 만드는 방법을 모르겠습니다. 도와주세요! :)
귀하의 코드는 바로 CONSOLE.LOG 인쇄를 작동 할 수 있습니다 : 당신이 사용하는 Lodash 함수에 대한 자세한 정보를 원하는 경우, 여기에 대한 공식 문서입니다 '[객체]'. console.log (client.deliveris)로 로그를 변경하고 아무것도 변경되지 않았는지 확인하십시오. – Meir
@Meir - 작동하지 않고 전달 내에 배열을 작성하므로 invoiceNumber는 [1234 ','5678 '] 등이됩니다. . 추가로 forEach를 실행하여 각 작업을 반복함으로써이 작업을 수행 할 수 있음을 알고 원본 배열과 병합 될 별도의 전달 개체를 작성했지만 더 나은 솔루션이 반드시 있어야합니다. – problematic
[Object]에 무엇이 있는지 알고 싶다면. 이렇게하십시오 :'var util = require ('util'); –