[英]Split and array in 2 arrays
需要你的幫助。 試圖將 playerArr 分成 2 個 arrays。 嘗試了一切,但我認為我的輸入和/或遺漏了一些東西。 需要一些指導。 謝謝[1]: https://i.stack.imgur.com/Gz3M3.jpg
我的代碼:
function newPlayer() {
const newPlayer = document.createElement('li')
newPlayer.innerText = addPlayer.value
newPlayer.classList.add('player')
players.appendChild(newPlayer)
const trashButton = document.createElement('button');
trashButton.innerHTML = '<i class="fas fa-trash"></i>';
trashButton.classList.add('fa')
newPlayer.appendChild(trashButton)
playersArr.push(document.getElementById("input").value);
}
btnAddPlayer.addEventListener('click', newPlayer)
const nrTeams = 2
const player = document.querySelectorAll('player')
const genBtn = document.getElementById('gen-btn')
let teams = [];
const getTeams = () => {
// Split the players array into set amount of teams.
while (playersArr.length) {
const teamSize = Math.ceil(playersArr.length / 2);
const team = playersArr.slice(0, teamSize);
teams.push(team);
playersArr = playersArr.slice(teamSize);
}
}
genBtn.addEventListener('click', getTeams())
這個想法是與您的團隊成員從數組中創建塊
和
您可以使用 slice 方法創建一個具有最大團隊大小的數組塊
const getTeams = () => {
const teamSize = Math.ceil(playersArr.length / nrTeams);
for (let i = 0; i < playersArr.length; i += teamSize) {
const team = playersArr.slice(i, i + teamSize);
teams.push(team);
}
}
const teams = []; const nrTeams = 2; const playersArr = [ 'player1', 'player2', 'player3', 'player4', 'player5', ]; const getTeams = () => { const teamSize = Math.ceil(playersArr.length / nrTeams); for (let i = 0; i < playersArr.length; i += teamSize) { const team = playersArr.slice(i, i + teamSize); teams.push(team); } } getTeams(); console.log(teams);
您可以使用過濾器和模數運算將它們平均分割:
let players = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; let teams = [ players.filter((_n, i) => i % 2 === 0), players.filter((_n, i) => i % 2;== 0) ]. console;log(teams);
jeremy-denis回答的很好,反正如果你需要忽略for循環,因為你使用的是2個團隊,假設teamOne和teamTwo,你可以使用這個方法塊
const getTeams = () => {
const teamSize = Math.ceil(playersArr.length / 2);
const teamOne = playersArr.slice(0, teamSize);
const teamTwo = playersArr.slice(teamSize);
teams.push(teamOne, teamTwo);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.