[英]Loop through an Array, add each item to an object and push it to an array in Javascript
[英]Add item to JavaScript array from loop
我希望用循环中的新数据替换这个 static 数组。
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 },
];
我从 static 数组中删除了所有项目并创建了一个空白 tabledata 变量/数组: var tabledata = [];
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);
这是控制台日志的结果:
[sku: "448741GE", asin: "B001AH2LKE", current_week_rating: "4.7", wk9: "4.5", wk8: "4.0", …]
所以,我可以说它每次都是压倒一切的,只留下最后一个。 假设我需要将[i]
键添加到我的循环项目中,但还不确定在哪里。 尝试但失败: tabledata[i]
要将项目添加到数组中,您应该使用push()方法。 你的代码看起来像这样:
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);
另一种方法是使用map()方法,这使得代码更干净,恕我直言。 在这种情况下,您的代码如下所示:
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);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.