Ceci est une fonction amusante pour Éviter les mutations avec des options:
function splitArray({ alternate, array }) {
const halfIndex = Math.ceil(array.length / 2) - 1;
let firstArray = true;
return array.reduce((res, item, index) => {
if (firstArray) {
res[0].push(item);
if (alternate || index >= halfIndex) {
firstArray = false;
}
} else {
res[1].push(item);
if (alternate) {
firstArray = true;
}
}
return res;
}, [[], []]);
}
Et vous pouvez l'appeler avec une option alternée:
const myArray = [1,2,3,4,5,6,7,8];
const splitAlternate = splitArray({ alternate: true, array: myArray });
const splitNoAlternate = splitArray({ alternate: false, array: myArray });
console.log(myArray);
console.log(splitAlternate);
console.log(splitNoAlternate);
2 votes
Comment pourriez-vous déterminer la taille de chaque moitié que vous voulez ?
3 votes
-1 parce que vous pouvez le déterminer juste en y réfléchissant. Quel sera le point médian - l'argument de
splice
- lorsque la taille du tableau est deN
? Et comment déterminez-vousN
?1 votes
Que se passe-t-il s'il y a un nombre impair? Il n'y a pas de 'Moitié'.... juste en train de dire!