首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从循环中向JavaScript数组添加项

从循环中向JavaScript数组添加项
EN

Stack Overflow用户
提问于 2021-03-14 14:06:19
回答 1查看 43关注 0票数 0

我希望用循环中的新数据替换这个静态数组。

代码语言:javascript
复制
var tabledata = [
  { sku:'442398GE', asin:'B075MJ6TPK', current_week_rating: 4.5, wk9: 4.0, wk8: 4.1, wk7: 3.1, wk6: 1.1, total_ratings: 991 },
  { sku:'502764GE', asin:'B07NFLRN23', current_week_rating: 5.0, wk9: 3.2, wk8: 3.2, wk7: 5.0, wk6: 2.1, total_ratings: 389 },
  { sku:'502764GE', asin:'B07NFLRN23', current_week_rating: 4.2, wk9: 4.0, wk8: 3.0, wk7: 4.1, wk6: 3.7, total_ratings: 22 },
  { sku:'442398GE', asin:'B07NFLRN23', current_week_rating: 4.2, wk9: '', wk8: 4.8, wk7: 4.1, wk6: 4.1, total_ratings: 832 },
  { sku:'502764GE', asin:'B07NFLRN23', current_week_rating: 2.2, wk9: 1.5, wk8: 1.5, wk7: 4.1, wk6: 4.1, total_ratings: 103 },
  { sku:'442398GE', asin:'B07NFLRN23', current_week_rating: 4.2, wk9: 5.0, wk8: 5.0, wk7: 4.1, wk6: 4.1, total_ratings: 382 },
  { sku:'502764GE', asin:'B07NFLRN23', current_week_rating: 4.2, wk9: 4.0, wk8: 4.0, wk7: 4.1, wk6: 4.1, total_ratings: 111 },
  { sku:'442398GE', asin:'B07NFLRN23', current_week_rating: 1.2, wk9: 4.0, wk8: 4.0, wk7: 4.1, wk6: 4.1, total_ratings: 226 },
];

我从静态数组中删除了所有项,并创建了一个空白的tabledata变量/数组:var tabledata = [];

代码语言:javascript
复制
var tabledata = [];

var i;
for (i = 0; i < phpjs.amazon_ratings.length; i++) {
  tabledata.sku = phpjs.amazon_ratings[i].sku;
  tabledata.asin = phpjs.amazon_ratings[i].asin;
  tabledata.current_week_rating = phpjs.amazon_ratings[i].rating;
  tabledata.wk9 = '4.5'; // static for now, can be ignored.
  tabledata.wk8 = '4.0'; // static for now, can be ignored.
  tabledata.wk7 = '4.8'; // static for now, can be ignored.
  tabledata.wk6 = '3.0'; // static for now, can be ignored.
  tabledata.total_ratings = phpjs.amazon_ratings[i].ratings_total;
}

console.log(tabledata);

以下是控制台日志的结果:

代码语言:javascript
复制
[sku: "448741GE", asin: "B001AH2LKE", current_week_rating: "4.7", wk9: "4.5", wk8: "4.0", …]

所以,我可以告诉你,它每次都是压倒一切的,只剩下最后一次。假设我需要将[i]键添加到循环项中,但还不确定在哪里。尝试但失败:tabledata[i]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-14 14:11:58

若要向数组添加项,应使用推()方法。您的代码看起来会是这样的:

代码语言:javascript
复制
var tabledata = [];

var i;
for (i = 0; i < phpjs.amazon_ratings.length; i++) {
  // Create the item object
  var 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.wk9 = '4.5'; // static for now, can be ignored.
  item.wk8 = '4.0'; // static for now, can be ignored.
  item.wk7 = '4.8'; // static for now, can be ignored.
  item.wk6 = '3.0'; // static for now, can be ignored.
  item.total_ratings = phpjs.amazon_ratings[i].ratings_total;

  // Add it to the array
  tabledata.push(item);
}

console.log(tabledata);

另一种方法是使用地图()方法,它使代码更简洁,IMHO。在本例中,代码如下所示:

代码语言:javascript
复制
var tabledata = phpjs.amazon_ratings.map(item => {
  return {
    'sku': item.sku,
    'asin': item.asin,
    'current_week_rating': item.rating,
    'wk9': 4.5,
    'wk8': 4.0,
    'wk7': 4.8,
    'wk6': 3.0,
    'total_ratings': item.ratings_total
  };
});
console.log(tabledata);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66625457

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档