通过代码从数组创建Json结构-Typescript

时间:2018-11-05 17:23:07

标签: javascript arrays json typescript

我必须创建一个Json对象,该对象代表来自不同数组的三明治配置(面包,肉,调味汁等),其中包含每个类别的成分(1个数组用于面包,1个用于肉等),例如此 {name: 'x', price: 'y'}

定义了类别,但是每个数组可以具有不同数量的元素

是否有可能从这些数组中通过代码获得类似的东西?用户选择所有成分后,我需要用它来在购物车页面中重述我的三明治。 (每种cat_1都是一种配料)。

sandwich{
"cat_1": {[
        {
            "name": "x",
            "price": "x"
        }
    ]
},
"cat_2": {[
        {
            "name": "x",
            "price": "x"
        }
    ]

},
"cat_3": {[
    {
        "name": "x",
            "price": "x"
    },
    {
        "name": "x",
        "price": "x"
    },
    {
        "name": "x",
        "price": "x"
    }
    ]

},
"cat_4": {[
        {
            "name": "x",
            "price": "x"
        },
        {
            "name": "x",
            "price": "x"
        }
    ]
},
"cat_5": {[
        {
            "name": "x",
            "price": "x"
        },
        {
            "name": "x",
            "price": "x"
        },
        {
            "name": "x",
            "price": "x"
        }
    ]
}      

}

我不发布任何代码,因为我不知道有什么帮助。

实际上,我将所有数组都放入一个大数组中,我有类似的东西,但这与我想要达到的目标有很大的不同。

[{
    "name": "Montanaro",
    "price": "5.00"
}, {
    "name": "Manzo",
    "price": "5.00"
}, {
    "name": "Fossa",
    "price": "1.00"
}, {
    "name": "Caciotta",
    "price": "1.00"
}, {
    "name": "Guacamole",
    "price": "0.50"
}, {
    "name": "Olive ascolane",
    "price": "1.00"
}, {
    "name": "Mozzarelline fritte",
    "price": "0.50"
}, {
    "name": "Onion Rings",
    "price": "1.00"
}]

我不是json专家,所以我不知道从哪里开始...

谢谢所有能帮助我的人。

祝你有美好的一天

1 个答案:

答案 0 :(得分:1)

您是否尝试过分割成分并为每个三明治从列表中添加元素?

let breads = [{name: "bread1", price: 1.00}, {name: "bread2", price: 2.00}, {name: "bread3", price: 3.00}];
let meats  = [{name: "meat1" , price: 1.00}, {name: "meat2" , price: 2.00}, {name: "meat3" , price: 3.00}];
let sauces = [{name: "sauce1", price: 1.00}, {name: "sauce2", price: 2.00}, {name: "sauce3", price: 3.00}];


let s1 = {
  bread : breads[Math.floor(Math.random()*breads.length)],
  meats : meats[Math.floor(Math.random()*meats.length)],
  sauces : sauces[Math.floor(Math.random()*sauces.length)]
}
let sandwich = {s1};

console.log(sandwich);

这里是一个示例:https://codepen.io/WildLlama/pen/VVLYmL?editors=0011