I have two arrays: one questions another is answers. I want to add answers array which has the same questionID into questions array answers attribute like this:
const questions = {
total: 18,
page: 1,
questions: [{
firstName: 'testing',
lastName: '001',
citizenType: 'VERIFIED CITIZEN',
imageUrl: 'https://source.unsplash.com/400x400/',
question: '546435645364564356',
createdAt: 1563486386916,
id: '905aa4c9-38b8-4429-a91b-56e819ea53e9',
answers : []
}, {
firstName: 'testing',
lastName: '001',
citizenType: 'VERIFIED CITIZEN',
imageUrl: 'https://source.unsplash.com/400x400/',
question: 'questions',
createdAt: 1563484856214,
id: '69165abc-3327-4d99-856a-290042863247',
answers : []
}, {
firstName: 'testing',
lastName: '001',
citizenType: 'VERIFIED CITIZEN',
imageUrl: 'https://source.unsplash.com/400x400/',
question: 'ffff',
createdAt: 1563475882538,
id: '97a1d4a1-7e6d-4859-93ee-5591918bba87',
answers : []
}]
};
const answers = [
{
citizenType: 'VERIFIED CITIZEN',
createdAt: 1563486386916,
firstName: 'Dan',
questionID: '905aa4c9-38b8-4429-a91b-56e819ea53e9',
id: '905aa4c9-38b8-4429-a91b-56e819ea53e1',
imageUrl: 'https://source.unsplash.com/400x400/',
lastName: 'Jone',
answer: 'answer from Dan Joe',
},
{
citizenType: 'VERIFIED CITIZEN',
createdAt: 1563486386916,
firstName: 'Bill',
questionID: '69165abc-3327-4d99-856a-290042863247',
id: '905aa4c9-38b8-4429-a91b-56e819ea53e2',
imageUrl: 'https://source.unsplash.com/400x400/',
lastName: 'Li',
answer: 'answer from Bill',
},
{
citizenType: 'VERIFIED CITIZEN',
createdAt: 1563486386916,
firstName: 'Steve',
questionID: '97a1d4a1-7e6d-4859-93ee-5591918bba87',
id: '905aa4c9-38b8-4429-a91b-56e819ea53e3',
imageUrl: 'https://source.unsplash.com/400x400/',
lastName: 'Sun',
answer: 'answer from Steve',
},
{
citizenType: 'VERIFIED CITIZEN',
createdAt: 1563486386916,
firstName: 'Steve',
questionID: '111111111',
id: '905aa4c9-38b8-4429-a91b-56e819ea53e3',
imageUrl: 'https://source.unsplash.com/400x400/',
lastName: 'Sun',
answer: 'answer from MissMatch',
},
];
let questionArr = questions.questions;
let answerArr = questionArr[0].answers;
// can use I use map, filter or other pure functions to achieve this?
questionArr.forEach(q => {
answers.forEach(a => {
if (q.id === a.questionID) {
q.answers.push(a);
}
})
})
console.log(questions);
right now the result (questions) is what I want, but just wondering if I can achieve this with some ES6 pure functions, like map filter... Thank you so much!