我有一个存储不同条形码编号的数组barcodeList
。我想将其中的每一个都变成一个不同的对象,key
是条形码编号并具有不同的属性。然后我想将它们全部放入一个大对象foodItems
中。我怎么能这样做。
另外,我意识到数字不能用来制作变量,所以我想在它们前面放一个关键字。此外,image
的{{1}}和ingredient
值现在只是占位符。
通缉结果 -
null
来自foodItems = {
Data9001: {
image : null
ingredients : null
}
Data9002: {
image : null
ingredients : null
}
}
对用户或关键字的任何推荐方法也将受到赞赏。
尝试:
barcodeList = [9001, 9002]
答案 0 :(得分:0)
首先,我不明白,你是什么意思
I realized that numbers can't be used to make variables
但根据您的要求,您可以做类似的事情
var barcodeList = [9001,9002];
var foodItems = {};
for (var i = 0; i < barcodeList.length; i++) {
foodItems[barcodeList[i]] = {
image : null,
ingredients : null
}
}
console.log(foodItems)
编辑:
根据您的代码,您可以执行此操作
var barcodeList = [9001, 9002]
var foodItems = {};
var Food = function() {
this.image = "noImage.png"
this.nutrients = null
this.ingredients = null
}
var foodItems = {}
for (var i = 0; i < barcodeList.length; i++) {
var something = new Food()
foodItems[barcodeList[i]] = something;
}
console.log(foodItems);
答案 1 :(得分:0)
使用括号表示法创建键
var barcodeList = [9001, 9002];
var foodItems = {};
barcodeList.forEach(function(item){
foodItems['Data'+item] = {
image : null,
ingredients : null
};
});
console.log(foodItems);
答案 2 :(得分:0)
不确定,你的回答有多远。我会用 Array.prototype.map()创建一个Data对象数组,然后使用reduce来连接。
几个指针 由于您需要键来开始使用数据,我会使用[&#39;数据&#39; +条形码]来创建它们。 我还将使用ES6扩展运算符来连接。
这是工作代码。
"use strict"
var barcodeList = [9001, 9002];
var result = barcodeList.map(function(barcode){
return {
['Data'+barcode]: {
image: null,
ingredients : null
}
}
}).reduce(function(prevValue,currValue){
return {...prevValue, ...currValue};
});
console.log ( result);