javascript - 在循环中用数字递增 JS 键
问题描述
我已经嵌套了第二个for
循环,并尝试为一年中的所有 52 周创建一个数组键wk1
等wk2
。然后将其添加到项目对象。
期望的结果:
item.wk1 = phpjs.amazon_ratings[i].wk1;
item.wk2 = phpjs.amazon_ratings[i].wk2;
etc...
var i;
var j;
for (i = 0; i < phpjs.amazon_ratings.length; i++) {
// Create the item object
var item = {};
// Add default array keys `sku`, and their values from the `amazon_ratings` array as we loop through each item.
item.sku = phpjs.amazon_ratings[i].sku;
item.asin = phpjs.amazon_ratings[i].asin;
item.current_week_rating = phpjs.amazon_ratings[i].rating;
item.total_ratings = phpjs.amazon_ratings[i].ratings_total;
item.category = phpjs.amazon_ratings[i].category;
// Loop 52 times and create array keys such as: WK1, WK2, WK3
for (j = 1; j < 53; j++) {
item.wk[j] = phpjs.amazon_ratings[i].wk[j];
}
// Add it to the array
tabledata.push( item );
}
但是它失败了:Uncaught TypeError: Cannot set property '1' of undefined
解决方案
它应该是 item['wk' + j]。
请记住,一年没有 52 周。你必须每年检查一次。
推荐阅读
- angular - 如何将线放在整个路径上?
- reactjs - 如何在本机反应中显示多个视图
- ionic-framework - 如何将滚动添加到 ion-slides 组件(这样我就可以滚动 U/D 和页面 L/R)
- java - Mesh Spring Boot 服务器
- r - write.csv:文件名取决于评估
- reactjs - 无法为 Azure 访问令牌配置 ASP.NET
- php - 在 PHP 中同时屏蔽 IPv4 和 IPv6
- orientdb - 你如何禁用 orientdb 控制台字符串截断/shotening?
- go - 整数双线性插值优化
- c - 这个例子应该如何工作?它对我来说是错误的