Optimisation de la conversion en tableau en JavaScript
Il n'est pas toujours nécessaire de diviser une chaîne en tableau pour faire quelque chose avec. Regardons un exemple. Supposons que nous ayons le code suivant :
let num = 123456789;
let arr = String(num).split('');
let sum = 0;
for (let elem of arr) {
sum += +elem;
}
console.log(sum);
Pourquoi est-il mauvais de diviser en tableau ici ? Parce que, premièrement, la division en tableau consomme des ressources processeur, deuxièmement, le tableau obtenu occupera de la place en mémoire vive (et celle-ci sera plus importante que la place occupée par la chaîne elle-même).
Or en réalité, avec for-of
on peut parcourir non seulement les tableaux,
mais aussi les chaînes :
let num = 123456789;
let str = String(num);
let sum = 0;
for (let char of str) {
sum += +char;
}
console.log(sum);
Le code suivant recherche la somme des chiffres d'un nombre saisi dans un input. Effectuez l'optimisation :
<input>
let input = document.querySelector('input');
input.addEventListener('blur', function() {
let digits = input.value.split('');
let sum = 0;
for (let digit of digits) {
sum += +digit;
}
console.log(sum);
});
Le code suivant compte le nombre de lettres dans une chaîne. Effectuez l'optimisation :
let str = 'abcaab';
let arr = str.split('');
let i = 0;
for (let elem of arr) {
if (elem == 'a') {
i++;
}
}
console.log(i);
Le code suivant vérifie la présence d'un symbole dans une chaîne. Effectuez l'optimisation :
let str = 'abcaab';
let arr = str.split('');
console.log(arr.includes('a'));