javascript - 如何将数组值转换为不同的对象
问题描述
我有一个具有多个值的数组值<我希望该数组值拆分为不同的对象
let array = [{"condition":"equals","field_name":"name","value":["Company B","Company D"]}]
预期输出:
[{"condition": "equals",
"field_name": "name",
"value": ["Company B"]
},
{
"condition": "equals",
"field_name": "name",
"value": ["Company D"]
}
],
解决方案
像这样的东西会起作用:
let things = [{"condition":"equals","field_name":"name","value":["Company B", "Company D"]}];
function expand(xs){
var results = [];
xs.forEach(item => {
if (item.value && item.value.length > 1){
results.push(...item.value.map( v => Object.assign({}, item, {value: [v]})))
}
else{
results.push(item)
}
})
return results;
}
console.log(expand(things))