javascript - 在 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 个小时里,我一直在盯着这些代码。
我不知道为什么我一直收到这个错误。
解决方案
datasets
是一个没有元素的空数组,你永远不会添加任何元素。只需确保将i
第 th 元素初始化为对象拳头:
datasets[i] = {};
您还可以稍微重组您的代码,而不是push
对象文字来datasets
获得相同的结果:
datasets.push({
borderWidth: 1,
hoverBorderWidth: 2,
hoverBorderColor: #fff,
data: response[i],
label: configs.objects[i]
});
推荐阅读
- postgresql - 计算字符串中大写字母的个数
- python - 我可以使用 python 搜索照片中的黑色像素并找出它们在照片中的位置吗?
- flutter - 如何在可重用的类小部件中实现 GestureDetector?
- javascript - 用另一个 (div) 替换一个元素 (div)
- spring-data-jpa - Spring 数据规范 + 子查询
- php - Laravel 雄辩的日期格式
- c# - ASP.Net Core 网站收到一堆请求后停止响应
- excel - VBA循环不去下一个工作表
- python - 如何正确循环浏览python中的文本文件以获取用户名/密码以进行登录?
- javascript - 打开一个 circleMarker 的弹出窗口 - 传单