Skip to content

Commit d2f20b5

Browse files
committed
translated until line 389
1 parent f038ff2 commit d2f20b5

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

1-js/06-advanced-functions/01-recursion/article.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -349,23 +349,23 @@ Algoritmul este probabil și mai ușor de citit din cod:
349349

350350

351351
```js run
352-
let company = { // the same object, compressed for brevity
352+
let company = { // același obiect, comprimat pentru simplificare
353353
sales: [{name: 'John', salary: 1000}, {name: 'Alice', salary: 1600 }],
354354
development: {
355355
sites: [{name: 'Peter', salary: 2000}, {name: 'Alex', salary: 1800 }],
356356
internals: [{name: 'Jack', salary: 1300}]
357357
}
358358
};
359359
360-
// The function to do the job
360+
// Funcția care face treaba
361361
*!*
362362
function sumSalaries(department) {
363-
if (Array.isArray(department)) { // case (1)
364-
return department.reduce((prev, current) => prev + current.salary, 0); // sum the array
365-
} else { // case (2)
363+
if (Array.isArray(department)) { // cazul (1)
364+
return department.reduce((prev, current) => prev + current.salary, 0); // însumează array-ul
365+
} else { // cazul (2)
366366
let sum = 0;
367367
for (let subdep of Object.values(department)) {
368-
sum += sumSalaries(subdep); // recursively call for subdepartments, sum the results
368+
sum += sumSalaries(subdep); // apelează recursiv pentru subdepartamente, însumează rezultatele
369369
}
370370
return sum;
371371
}
@@ -375,18 +375,18 @@ function sumSalaries(department) {
375375
alert(sumSalaries(company)); // 7700
376376
```
377377

378-
The code is short and easy to understand (hopefully?). That's the power of recursion. It also works for any level of subdepartment nesting.
378+
Codul este scurt și ușor de înțeles (sperăm?). Aceasta este puterea recursivității. Funcționează de asemenea pentru orice nivel nested a subdepartamentului.
379379

380-
Here's the diagram of calls:
380+
Iată diagrama de apeluri:
381381

382382
![recursive salaries](recursive-salaries.svg)
383383

384-
We can easily see the principle: for an object `{...}` subcalls are made, while arrays `[...]` are the "leaves" of the recursion tree, they give immediate result.
384+
Putem vedea cu ușurință principiul: pentru un obiect `{...}` se fac subapeluri, în timp ce array-urile `[...]` sunt "frunzele" din recursion tree, ele dau un rezultat imediat.
385385

386-
Note that the code uses smart features that we've covered before:
386+
Observați că codul folosește caracteristici inteligente pe care le-am mai acoperit:
387387

388-
- Method `arr.reduce` explained in the chapter <info:array-methods> to get the sum of the array.
389-
- Loop `for(val of Object.values(obj))` to iterate over object values: `Object.values` returns an array of them.
388+
- Metoda `arr.reduce` explicată în capitolul <info:array-methods> pentru a obține suma array-ului.
389+
- Bucla `for(val of Object.values(obj))` pentru a itera peste valorile obiectului: `Object.values` returnează un array al acestora.
390390

391391

392392
## Recursive structures

0 commit comments

Comments
 (0)