所以我的目标是拥有一个对象变量,该变量在开始时为空,但是随着代码开始运行,它将被来自其他变量的数据填充。装满后,它应该看起来像这样:
{
"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对象中提取水果的名称,并分配适当的卡路里和 color 属性。
到目前为止,我一直在努力使这项工作至少一个小时,但是失败了。我的一些尝试如下:
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...
还请注意,仅将其转储到一个对象数组中是不可行的,因为该对象将非常庞大,而这样查找所需的清单将非常浪费时间和资源。
答案 0 :(得分:1)
我相信这样的东西会满足您的需求:
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
},
}
答案 1 :(得分:1)
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
}
}
答案 2 :(得分:0)
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
}
}