У меня есть пара записей rec1 и rec2.
Оба имеют общее имя ключа/значения1.
когда имя1 равно в обеих записях, мне нужно установить несколько значений rec2 в rec1.
Я помещаю их в две разные петли, как показано ниже.
rec1.each{r1-> each
rec2.each{r2-> each
if(r2.name1 == r1.name1){
r1.name2 = r2.name2
r1.name3 = r2.name3
}
}
}
Есть ли лучший способ сделать это
Пример: (извините, я просто вставляю содержимое)
recoRecord : [["CHANNEL":INBOUND, "STOCK_LEVEL":2410.0, "OFFER_TARIFF_ID":FBUN-MVP-VME-VIRGIN-31-24-04, "P_BAND":P4-6, "CONTRACT_LENGTH":24.0, "INCENTIVE_POINTS ":10.0, "HANDSET_PKEY_ID":SAM-STD-I9300-1, "CUST_TYPE":MEDIA]]
записи: [["MEDIA_SUBSIDY_VALUE":0.0, "CREDIT_CLASS":C5, "DOM_OTHER_MARGIN":0.0, "isBatchTerminator":false, "CALL_GROUP_DESC":COMBINED, "DM":20.0, "BLACKBERRY_IND":N, "PREFERRED_BLACKBERRY": N, "ERROR_ID": 0, "CUST_TYPE": MEDIA, "TARIFF_MRC": 30,99, "MOST_USED_TAC": 35961404, "FORM_FACTOR": null, "CAMERA_IND": null, "NEW_MARGIN": 22.272501, "MODEL": null, «IS_MMS_ALLOWANCE»: N, «ACTIVE_HANDSET_BANDS»:, «CUST_OUT_OF_ALLOWANCE_PLAN»: JV15, «OOB_DOM_VOICE»: 0,0, «OOB_DOM_SMS»: 0,0, «VM_CUST_FLAG»: Y, «IB_DATA»: 0,0, «CHANNEL_FLAG»: INBOUND, «SMS_ALLOWANCE» :5000.0, "ROAM_SMS_MARGIN":0.0, "TARIFF_DESC":30,99 Virgin Media 24 месяца+1ГБ 1300мин, "MARGIN_CHANGE_PCT":0.12691319, "OFFER_VOICE_ALLOWANCE":600, "MAKE":null, "IS_ONNET_ALLOWANCE":Y, "OFFER_CONTRACT_TERM": 24.0, "PREFERRED_MINUTES": 1300, "PREFERRED_ON_NET": Y, "MOST_USED_IMEI": 359614048625860, "СКИДКА": 3.0, "NetPresentValue": 1.15, "RecInd": 1, "WIFI_IND": ноль, "IPHONE_IND": N, "OFFER_TARIFF_ID":FBUN-MVP-VME-VIRGIN-31-24 -04, "Поощрительные баллы": -1.0]
когда OFFER_TARIFF_ID в обеих записях одинаковы, я хотел бы установить несколько значений первой записи во вторую запись