Как объединить значения массива строк с определенным свойством в массиве объектов в Type Script / Java Script

regex использует ASCII печатные символы из пробела в диапазон тильдов.

blockquote>

Всякий раз, когда мы используем маркер [A-z], он соответствует следующей таблице выделенных символов. Если мы используем маркер [ -~], он соответствует начиная с SPACE до тильды.

1
задан Jack Bashford 7 March 2019 в 01:59
поделиться

3 ответа

Сначала необходимо изменить массив answers в newquestion в желаемом формате.

let question = {id: 1,description: 'how is the service',answers: [{id: 1,description: 'poor'},{id: 2,description: 'good'}]};
let newquestion = {description: 'new question',answers: ['new poor','new good']}

newquestion.answers = newquestion.answers.map((val, index) => ({ id:index+1, description: val }))

let op = {...question, ...newquestion}

console.log(op)

0
ответ дан Code Maniac 7 March 2019 в 01:59
поделиться

Если у вас все в порядке с мутацией оригинала question, просто выполните цикл по newquestion.asnwers и обновите question.answers, используя соответствующие им index

[110 ]

Если вы хотите создать новый объект q, используйте map, чтобы получить массив новых ответов и создать новый объект с использованием синтаксиса распространения:

[ 1115]
let question = {id:1,description:'how is the service',answers:[{id:1,description:'poor'},{id:2,description:'good'}]},
    newquestion={description:'new question',answers:['new poor','new good']};

const newAnswers = newquestion.answers.map((description, i) => (
    { ...question.answers[i], description }
))

const q = { ...question, answers: newAnswers }
console.log(q)

0
ответ дан adiga 7 March 2019 в 01:59
поделиться

Используйте простое map, чтобы изменить значения:

const q = {...question, ...newQuestion};
q.answers = q.answers.map((e, i) => { return { id: i + 1, description: e } });
0
ответ дан Jack Bashford 7 March 2019 в 01:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: