JSFiddle - React, Tailwind, and code Playground
by graphettion
JavaScript
let categories = [{
"Items": [{
"Citation": "tests",
"Name": "Item 2",
"RequireAttachment": true,
"RequireCapa": true,
"RequireComment": true
}, {
"Citation": null,
"Name": "Item 1",
"RequireAttachment": true,
"RequireCapa": false,
"RequireComment": true
}],
"Name": "Category 2"
}, {
"Items": [{
"Citation": "Test more",
"Name": "Jim Test Item 2",
"RequireAttachment": true,
"RequireCapa": true,
"RequireComment": true
}],
"Name": "Jim Test Category"
}]
// desired output [{Citation: "test"}, {Citation: null}, {citation: "Test more"}]
let citation = categories.flatMap(({ Items }) => Items.map(({ Citation }) => ({ Citation })))
console.log('citation', citation)
// merge with this dataset
let auditFormsReview = {
formItemResponses: [{
category: "Category 2",
comments: null,
id: 1,
name: "Item 2",
response: null
},
{
category: "Category 2",
comments: null,
id: 2,
name: "Item 1",
response: null
},
{
category: "Jim Test Category",
comments: null,
id: 3,
name: "Jim Test Item 2",
response: null
}]
}
// desired output { formItemResponses: [{ category: "Category 2", comments: null, id: 1, name: "Item 2", response: null, citation: "test"}]
//let merge = Array.prototype.push.apply(auditFormsReview.formItemResponses, citation)
let merge = auditFormsReview.formItemResponses.map((item, i) => Object.assign({}, item, citation[i]));
console.log('auditFormsReview', merge)