我正在抓取一个网站并拥有一系列我正在循环的数字:
const arr = [1,2,3,1,2,4,5,6,7];
它们对应于不同球队的赢/输/抽奖:
即
数组中的第1项获胜,第二项是平局,第三项是亏损,第四项是赢,第五项是平局,第六项是亏损等。
我如何循环使用这些,所以我有以下内容:
const teams = [{
won: 1,
draw: 2,
lost: 3
},{
won: 1,
draw: 2,
lost: 4
},{
won: 5,
draw: 6,
lost: 7
}];
我尝试了类似下面的内容,但它没有像我预期的那样工作。
const arr = [1, 2, 3, 1, 2, 4, 5, 6, 7];
const newArr = [];
arr.forEach((item, index => {
if (index % 0 === 0) {
newArr.push({
won: item
});
} else if (index % 1 === 0) {
newArr.push({
draw: item
});
} else {
newArr.push({
lost: item
});
}
});
答案 0 :(得分:2)
不幸的是,使用像forEach
这样的数组方法不会很好,因为你需要将多个数组元素合并到一个对象中。这是可能的,但这会有点令人困惑。如果使用for
循环可能会更清楚:
const arr = [1,2,3,1,2,4,5,6,7];
const teams = [];
for (let i = 0; i < arr.length; i += 3) {
teams.push({
won: arr[i],
draw: arr[i + 1],
lost: arr[i + 2],
});
}
console.log(teams);
&#13;
答案 1 :(得分:1)
你想要
index % 3 === 0; // 0, 3, 6, ...
index % 3 === 1; // 1, 4, 7, ...
index % 3 === 2; // 2, 5, 8, ...
答案 2 :(得分:1)
您可以循环遍历数组,但只能使用i+=3
来考虑每个第三个元素:
let teams = [];
function teamStats(won, draw, lost){
return {won, draw, lost};
}
for(let i = 0; i < arr.length; i+=3){
teams.push(teamStats(arr[i], arr[i+1], arr[i+2]));
}