Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获(承诺中)类型错误:无法设置属性';0';未定义的_Javascript_Json_Promise - Fatal编程技术网

Javascript 未捕获(承诺中)类型错误:无法设置属性';0';未定义的

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] =

不知道我做错了什么。基本上我是从API中检索信息。将JSON数据中的2个属性设置为一个名为“name”和“price”的数组。我希望将它们组合在一起,这样“name”数组就是我的对象“itempright”中的“key”,而该key的值就是price数组

例如:

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()
。然后
来捕捉可能出现的错误,如您遇到的错误。谢谢您的解释。谢谢你的解释。它起作用了