Operacje na kolekcjach - mapowanie

Mapowanie pozwala przekształcić tablicę wartości na tablicę innych wartości.

Przekształćmy tablicę studentów na tablicę ich imion oraz nazwisk.

Zaczniemy od wykorzystania pętli for-of.

Przykład 2.1.1
let names = [];

for (let student of students) {
  names.push(`${student.firstName} ${student.lastName}`);
}

console.log(names);
// -> ["Christina Richmond", "Austin Wooten", 
//     "Viola Shelton", "Marisol Sargent", "Hawkins Everett"]

Możemy uprościć implementację wykorzystując metodę Array.forEach().

Przykład 2.1.2
let names = [];

students.forEach(student => {
  names.push(`${student.firstName} ${student.lastName}`);
});

console.log(names);
// -> ["Christina Richmond", "Austin Wooten", 
//     "Viola Shelton", "Marisol Sargent", "Hawkins Everett"]

To co udało nam się osiągnąć jest uproszczoną iplementacją metody Array.map(). Przyjmuje ona jako argument funckję, która wykona mapowanie wartości.

Przykład 2.1.3
let names = students
  .map(student => `${student.firstName} ${student.lastName}`);

console.log(names);
// -> ["Christina Richmond", "Austin Wooten", 
//     "Viola Shelton", "Marisol Sargent", "Hawkins Everett"]

Korzystając z Array.map() oraz zbiorów (Set) możemy łatwo i szybko wyciągnąć z tablicy zbiór występujących wartości danego pola.

Wyciągnijmy zbiór kolorów oczy studentów.

Przykład 2.1.4
let eyeColors = students.map(student => student.eyeColor);

console.log(eyeColors);
// -> ["green", "blue", "blue", "brown", "blue"]

let uniqueEyeColors = new Set(eyeColors);

console.log(uniqueEyeColors);
// -> Set {"green", "blue", "brown"}

Ćwiczenia

(2.1.1) Wyciągnij z tablicy studentów uniklane wartości ich wieku.


Źródła

results matching ""

    No results matching ""