const arr = [
{
"createdBy": "rmc-cmt-mbr-2",
"topicSm": "456",
"vot": "Yes"
},
{
"createdBy": "rmc-cmt-mbr-2",
"topicSm": "123",
"vot": "Yes"
},
{
"createdBy": "rmc-cmt-mbr-1",
"topicSm": "123",
"vot": "Yes"
},
{
"createdBy": "rmc-cmt-mbr-1",
"topicSm": "456",
"vot": "No"
},
{
"createdBy": "rmc-cmt-mbr-6",
"topicSm": "123",
"vot": "No"
},
{
"createdBy": "rmc-cmt-mbr-6",
"topicSm": "456",
"vot": "No"
}
]
const obj = {
"topicSummaryList_0": {
"topicSm_0": {
"name": "topicSm_0",
"value": "456"
},
"topic1_0": {
"name": "topic1_0",
"label": "Yes",
"value": ""
},
"topic2_0": {
"name": "topic2_0",
"label": "No",
"value": ""
},
},
"topicSummaryList_1": {
"topicSm_1": {
"name": "topicSm_1",
"value": "123"
},
"topic1_1": {
"name": "topic1_1",
"label": "Yes",
"value": ""
},
"topic2_1": {
"name": "topic2_1",
"label": "No",
"value": ""
},
}
}
不要使用for in 方法,根据数组的topicSm和obj.topicSummaryList.topicSm.value对比,并且数组的vot和obj.topicSummaryList.topic1.label对比,对比相同的结果,把数组的createdBy值给到obj.topicSummaryList.topic1.value或者obj.topicSummaryList.topic2.value,期望得到以下结果
const newObj = {
"topicSummaryList_0": {
"topicSm_0": {
"name": "topicSm_0",
"value": "456"
},
"topic1_0": {
"name": "topic1_0",
"label": "Yes",
"value": "rmc-cmt-mbr-2,"
},
"topic2_0": {
"name": "topic2_0",
"label": "No",
"value": "rmc-cmt-mbr-1,rmc-cmt-mbr-6"
},
},
"topicSummaryList_1": {
"topicSm_1": {
"name": "topicSm_1",
"value": "123"
},
"topic1_1": {
"name": "topic1_1",
"label": "Yes",
"value": "rmc-cmt-mbr-2,rmc-cmt-mbr-1"
},
"topic2_1": {
"name": "topic2_1",
"label": "No",
"value": "rmc-cmt-mbr-6"
},
}
}
Object.keys(obj).forEach(k0 => {
let keys = Object.keys(obj[k0]);
var value = obj[k0][keys.filter(i => i.includes('topicSm_'))[0]].value;
var items = arr.filter(i => i.topicSm == value);
keys.filter(i => !i.includes('topicSm_')).forEach(i => {
obj[k0][i].value = items.filter(x => x.vot == obj[k0][i].label).map(i => i.createdBy).join(',')
})
})
console.log(obj)
【以下回答由 GPT 生成】
我希望将数组 arr
和对象 obj
进行一些处理:
对于数组 arr
,我希望根据 "topicSm"
的值对其进行分组,并统计每个分组中 "vot"
是 "Yes" 和 "No" 的数量。
对于对象 obj
,我希望根据其结构中的属性和值的关系,更新 "value"
的值。具体来说,对于每个 topicSummaryList_x
,我想找到 topicSm_x
的值,并更新其下的 topic1_x
和 topic2_x
中的 "value"
值为 arr
中相应分组的 "Yes" 和 "No" 的数量。
我的代码实现如下所示: