如何在javascript中创建{value,array[i]}对象对

pbpqsu0x  于 2022-12-17  发布在  Java
关注(0)|答案(4)|浏览(78)

我从后端接收对象,其公式如下:

[
  {value: 'FIRST', AvailableValues[{code: "one"},{code: "two"}]},
  {value: 'SECOND', AvailableValues[{code: "one"},{code: "two"}]
]

我的问题是如何Map这个对象来创建像这样的对

[{value: "FIRST", code:"one"}, 
{value: "FIRST", code:"two"},
{value: "SECOND", code:"one"},
{value: "SECOND", code:"two"}]

谢谢
我尝试了JavaScript预定义方法的组合,如双Map,键控搜索等,但结果出现了错误

bxjv4tth

bxjv4tth1#

使用reduce函数
另外,初始数据应该是一个数组,因为如果它是一个对象,那么它应该包含带有值的键

const list = [
  {value: 'FIRST', AvailableValues:[{code: "one"},{code: "two"}]},
  {value: 'SECOND', AvailableValues:[{code: "one"},{code: "two"}]}
]

const result = list.reduce((acc,item) => {
  const res = item.AvailableValues.map(i => ({value: item.value, code: i.code}))
  
  return [...acc,...res]
}, [])

console.log(result)
vlurs2pr

vlurs2pr2#

尝试类似这样的操作,假设您从后端接收对象数组

let result = [];
yourObject.forEach((x)=>{
    x.AvailableValues.map((innerItem)=>{ 
        result.push({value:x.value, code : innerItem.code})
    });
})
console.log(result)
368yc8dk

368yc8dk3#

这里的其他答案可以完成任务。

const data  =[
  {value: 'FIRST', AvailableValues:[{code: "one"},{code: "two"}]},
  {value: 'SECOND', AvailableValues:[{code: "one"},{code: "two"}]}
]

const res = data.flatMap(({value,AvailableValues}) => AvailableValues.map(({code}) => ({value,code})))

console.log(res)
ql3eal8s

ql3eal8s4#

var response = [{
            value: 'FIRST', AvailableValues: [{ code: "one" }, { code: "two" }]},{
            value: 'SECOND', AvailableValues: [{ code: "one" }, { code: "two" }]}
    ];
    
    var output = [];
    
    response.forEach(function(o) {
        o.AvailableValues.forEach(function(oo) {
            var t = {
                value: o.value,
                code: oo.code
            };
            output.push(t);
        })
    });
    
    console.log(output);

相关问题