Javascript 未捕获(承诺中)类型错误:无法设置属性';0';未定义的
不知道我做错了什么。基本上我是从API中检索信息。将JSON数据中的2个属性设置为一个名为“name”和“price”的数组。我希望将它们组合在一起,这样“name”数组就是我的对象“itempright”中的“key”,而该key的值就是price数组 例如:Javascript 未捕获(承诺中)类型错误:无法设置属性';0';未定义的,javascript,json,promise,Javascript,Json,Promise,不知道我做错了什么。基本上我是从API中检索信息。将JSON数据中的2个属性设置为一个名为“name”和“price”的数组。我希望将它们组合在一起,这样“name”数组就是我的对象“itempright”中的“key”,而该key的值就是price数组 例如: name = ['item1']; profit = [1000]; itemProfit = {item1: 1000}; 我能够正确地将名称/利润数组输出到控制台,但我的错误在第行生成: itemProfit.name[i] =
name = ['item1'];
profit = [1000];
itemProfit = {item1: 1000};
我能够正确地将名称/利润数组输出到控制台,但我的错误在第行生成:
itemProfit.name[i] = profit[i];
完整代码如下:
btn_top.addEventListener("click", function () {
fetch(url)
.then(function(response) {
return response.json();
})
.then(function(myJson) {
let name = [];
let profit = [];
Object.values(myJson).forEach(e=> {
name.push(e.name);
profit.push(e.sell_average - e.buy_average);
});
var itemProfit = {}
for (i=0; i<name.length; i++) {
itemProfit.name[i] = profit[i]; // where error occurs
};
// console.log(name);
// console.log(profit);
console.log(itemProfit);
});
});
任何帮助都将不胜感激~好吧,您的代码正在尝试访问itemProfit.name[0]。itemProfit没有属性名称,因此当您尝试访问未定义的[0]时,会出现该错误
itemProfit.name[i]
你真正想做的是:
itemProfit[name[i]] = profit[i]
通过这种方式,您将
利润[i]
分配给对应于名称[i]
的itemProfit上的键。那么,您的代码正在尝试访问itemProfit.name[0]。itemProfit没有属性名称,因此当您尝试访问未定义的[0]时,会出现该错误
itemProfit.name[i]
你真正想做的是:
itemProfit[name[i]] = profit[i]
这样,您将
利润[i]
分配给对应于名称[i]
的itemProfit上的键,请尝试发布完整的错误消息。另外,在之后应该有一个.catch()
。然后
来捕获可能的错误,比如您尝试发布完整的错误消息。另外,您应该在之后有一个.catch()
。然后
来捕捉可能出现的错误,如您遇到的错误。谢谢您的解释。谢谢你的解释。它起作用了