Как мы можем передать sh значений объекту изнутри функции карты и вернуть этот единственный объект. У меня есть условие сравнения строк внутри функции карты. Я пробовал использовать Object.assign
, но он возвращает массив с несколькими объектами внутри этого массива. Вместо этого множественного объекта я ожидаю один объект внутри массива.
Функция карты
let arrayObj = arrayToTraverse.map(function(item) {
var myObj = {};
if(item.inputvalue === 'Name'){
Object.assign(myObj, {name: item.value});
} else if (item.inputvalue === 'Email'){
Object.assign(organizerInfo, {email: item.value});
} else if (item.inputvalue === 'Company'){
Object.assign(organizerInfo, {company: item.value});
}
return myObj;
});
console.log("The array object is", arrayObj)
Это возвращает массив объектов следующим образом
[
{
"name": "Tom"
},
{
"email": "tom@abc.com"
},
{
"company": "ABC"
}
]
Но ожидаемый массив
[
{
"name": "Tom",
"email": "tom@abc.com",
"company": "ABC"
}
]
// or
[
"returned": {
"name": "Tom",
"email": "tom@abc.com",
"company": "ABC"
}
]
Пример arrayToTraverse можно рассматривать как следующий
[
{
"id": "1",
"inputvalue": "Name",
"value": "Tom",
"type": "Short Text"
},
{
"id": "2",
"inputvalue": "Email",
"value": "tom@abc.com",
"type": "Email ID"
},
{
"id": "3",
"inputvalue": "Company",
"value": "Google",
"type": "Long Text"
}
]