Hi everyone! I'm the author of code.mu :)
I'd love to chat with my non-Russian audience. I'm looking for your feedback on the site and the translation quality. Let's chat:)
⊗jsSpOtLO 272 of 294 menu
◀ ▶

Otimização de Operações Cíclicas em JavaScript

Mesmo uma operação leve, repetida várias vezes em um loop, pode consumir muitos recursos.

Vamos ver um exemplo. Suponha que temos um determinado array:

let arr = [1, 2, 3, 4, 5, 6];

Vamos encontrar a média dos elementos deste array. Para isso, precisamos encontrar a soma dos elementos e dividi-la pela quantidade. Suponha que um programador já resolveu esta tarefa da seguinte forma:

let avg = 0; for (let elem of arr) { avg += elem / arr.length; } console.log(avg);

Vamos analisar os problemas dessa solução. Tecnicamente, o código funciona corretamente e fornece a resposta correta. O fato é que matematicamente é correto tanto dividir a soma total pela quantidade quanto dividir cada uma das parcelas pela quantidade.

No entanto, surge outro problema. O fato é que executaremos a divisão quantas vezes houver elementos em nosso array. E acontece que estamos fazendo um grande número de operações desnecessárias, pois a divisão poderia ter sido feita no final - uma vez, dividindo a soma total encontrada.

Vamos otimizar nosso código:

let sum = 0; for (let elem of arr) { sum += elem; } let avg = sum / arr.length; console.log(avg);

Otimize o seguinte código:

for (let i = 1900; i <= 2100; i++) { let curr = new Date; let date = new Date(i, curr.getMonth(), curr.getDate()); if (curr.getDay() === date.getDay()) { console.log(date); } }

Otimize o seguinte código:

let obj = {a: 10, b: 20, c: 30, d: 40, e: 50}; let sum = 0; for (let key in obj) { if (String(obj[key])[0] === '1' || String(obj[key])[0] === '2') { sum += obj[key]; } } console.log(sum);
← →
↑
Português▼
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nós usamos cookies para o funcionamento do site, análises e personalização. O processamento de dados é realizado de acordo com a Política de Privacidade.
aceitar todas configurar rejeitar