使用变量和对象中的数据向JSON对象添加数据



所以我的目标是有一个对象变量,它在开始时是空的,但当代码开始运行时,它会被其他变量的数据填满。当它装满时,应该是这样的:

{
"banana" : 
{
"color" : "yellow",
"calories" : 300
},
"apple" : 
{
"color" : "green",
"calories" : 250
},
...
}

两个数组和一个JSON对象应该是信息源,它们看起来像这样:

var fruits = {
"product 1" :
{
"price" : 1.2,
"stock" : 124,
"name" : "banana"
},
"product 2" :
{
"price" : 0.6,
"stock" : 21,
"name" : "apple"
},
...
}
var colors = [yellow, green, ...];
var calories = [300, 250, ...];

简单地说,我需要从JSON对象中提取水果的名称,并分配适当的卡路里颜色属性。

到目前为止,我已经尝试了至少一个小时,但没有成功。我的一些尝试如下:

var object.(fruits.product1) = JSON.stringify({colors[0] : calories[0]});
//also tried this
var object.(fruits.product1) = "{""'" + (colors[0]) + "'":+calories[0]+"}";
//and tried many other things...

此外,请注意,简单地将其转储到一个对象数组中是不可行的,因为这个对象将是巨大的,以这种方式找到所需的列表将非常浪费时间和资源。

我相信这样的东西会满足您的需求:

var fruits = {
"product 1" : {
"price" : 1.2,
"stock" : 124,
"name" : "banana"
},
"product 2" : {
"price" : 0.6,
"stock" : 21,
"name" : "apple"
}
}
var colors = ['yellow', 'green'];
var calories = [300, 250];
var json = {};
Object.keys(fruits).forEach((key, index) => {
json[fruits[key].name] = {
color: colors[index],
calories: calories[index]
}
})

创建的对象看起来像

{
"banana" : {
"color" : "yellow",
"calories" : 300
},
"apple" : {
"color" : "green",
"calories" : 250
},
}
var fruits = {
"product 1" :
{
"price" : 1.2,
"stock" : 124,
"name" : "banana"
},
"product 2" :
{
"price" : 0.6,
"stock" : 21,
"name" : "apple"
},
}
var colors = ['yellow', 'green']
var calories = [300, 250]
const result = {}
Object.keys(fruits)
.forEach((key, index) => {
Object.assign(result, {
[fruits[key].name]: {
color: colors[index],
calories: calories[index],
stock: fruits[key].stock,
price: fruits[key].price,
}
})
})
console.log(result)

应显示:

{
"banana": {
"color": "yellow",
"calories": 300,
"stock": 124,
"price": 1.2
},
"apple": {
"color": "green",
"calories": 250,
"stock": 21,
"price": 0.6
}
}
var fruits = {
"product 1" :
{
"price" : 1.2,
"stock" : 124,
"name" : "banana"
},
"product 2" :
{
"price" : 0.6,
"stock" : 21,
"name" : "apple"
},
}
var colors = ['yellow', 'green']
var calories = [300, 250]
Object.keys(fruits)
.forEach((key, index) => {
Object.assign(fruits[key], {
color: colors[index],
calories: calories[index]
})
})

之后的水果对象:

{
"product 1": {
"price": 1.2,
"stock": 124,
"name": "banana",
"color": "yellow",
"calories": 300
},
"product 2": {
"price": 0.6,
"stock": 21,
"name": "apple",
"color": "green",
"calories": 250
}
}

最新更新