如何将数组值转换为不同的对象

时间:2019-05-13 08:14:12

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

3 个答案:

答案 0 :(得分:0)

类似的事情会起作用:

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

答案 1 :(得分:0)

let newArr = array.map(item => item.value.map(val => { return { ...item, value: val} }));  

如果我理解正确,这应该可以达到问题的预期结果。

答案 2 :(得分:0)

我可能使事情复杂化了,但这是我建议的解决方案。

您可以使用Array.map(),然后对原始array中的每个对象进行迭代,然后在value中进行迭代,以使{中的每个元素都有一个对象{1}}属性。接下来,将它们串联以形成结果数组。

value