⊗jsSpOtAC 279 of 294 menu

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'));
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser