首页 > 解决方案 > 如何将数组值转换为不同的对象

问题描述

我有一个具有多个值的数组值<我希望该数组值拆分为不同的对象

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"]
}
],

标签: javascript

解决方案


像这样的东西会起作用:

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))


推荐阅读