我们如何从 map 函数内部将值推送到对象并返回该单个对象。我在 map 函数中有字符串比较条件。我尝试使用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"
}
]
弑天下
相关分类