首页 > 解决方案 > 在 For 循环中创建键值对数组

问题描述

我从我的 ajax 收到了这个回复

这是我的configs.objects

configs.objects    = ['Mexico','Brazil','Spain','Italy','USA'];

在此处输入图像描述

(7) [19, 51, 40, 69, 15, 77, 40]

我创建了一个 for 循环

var datasets = [];

for (i = 0; i < configs.objects.length; i++) {

    console.log(i);

    datasets[i]['borderWidth']      = 1;
    datasets[i]['hoverBorderWidth'] = 2;
    datasets[i]['hoverBorderColor'] = '#fff';
    datasets[i]['data']             = response[i];
    datasets[i]['label']            = configs.objects[i];


    // debugger;

}


console.log(datasets);

我不断得到

未捕获的类型错误:无法设置未定义的属性“borderWidth”

为什么 ?我做错什么了吗?在过去的 2 个小时里,我一直在盯着这些代码。

我不知道为什么我一直收到这个错误。

标签: javascriptarrays

解决方案


datasets是一个没有元素的空数组,你永远不会添加任何元素。只需确保将i第 th 元素初始化为对象拳头:

datasets[i] = {};

您还可以稍微重组您的代码,而不是push对象文字来datasets获得相同的结果:

datasets.push({
    borderWidth: 1,
    hoverBorderWidth: 2,
    hoverBorderColor: #fff,
    data: response[i],
    label: configs.objects[i]
});

推荐阅读