我有一个带有多个值的数组值<我想将该数组值拆分为不同的对象
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"]
}
],
答案 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