Niektóre przypadki użycia pętli przez tablicę w sposób programowania funkcjonalnego w JavaScript:
1. Po prostu przejrzyj tablicę
const myArray = [{x:100}, {x:200}, {x:300}];
myArray.forEach((element, index, array) => {
console.log(element.x);
console.log(index);
console.log(array);
});
Uwaga: Array.prototype.forEach () nie jest ściśle funkcjonalnym sposobem, ponieważ funkcja, którą przyjmuje jako parametr wejściowy, nie ma zwracać wartości, której w związku z tym nie można uznać za czystą funkcję.
2. Sprawdź, czy którykolwiek z elementów tablicy przechodzi test
const people = [
{name: 'John', age: 23},
{name: 'Andrew', age: 3},
{name: 'Peter', age: 8},
{name: 'Hanna', age: 14},
{name: 'Adam', age: 37}];
const anyAdult = people.some(person => person.age >= 18);
console.log(anyAdult);
3. Przekształć w nową tablicę
const myArray = [{x:100}, {x:200}, {x:300}];
const newArray= myArray.map(element => element.x);
console.log(newArray);
Uwaga: Metoda map () tworzy nową tablicę z wynikami wywołania podanej funkcji dla każdego elementu w tablicy wywołującej.
4. Zsumuj określoną właściwość i oblicz jej średnią
const myArray = [{x:100}, {x:200}, {x:300}];
const sum = myArray.map(element => element.x).reduce((a, b) => a + b, 0);
console.log(sum);
const average = sum / myArray.length;
console.log(average);
5. Utwórz nową tablicę na podstawie oryginału, ale bez modyfikowania jej
const myArray = [{x:100}, {x:200}, {x:300}];
const newArray= myArray.map(element => {
return {
...element,
x: element.x * 2
};
});
console.log(myArray);
console.log(newArray);
6. Policz liczbę w każdej kategorii
const people = [
{name: 'John', group: 'A'},
{name: 'Andrew', group: 'C'},
{name: 'Peter', group: 'A'},
{name: 'James', group: 'B'},
{name: 'Hanna', group: 'A'},
{name: 'Adam', group: 'B'}];
const groupInfo = people.reduce((groups, person) => {
const {A = 0, B = 0, C = 0} = groups;
if (person.group === 'A') {
return {...groups, A: A + 1};
} else if (person.group === 'B') {
return {...groups, B: B + 1};
} else {
return {...groups, C: C + 1};
}
}, {});
console.log(groupInfo);
7. Pobierz podzbiór tablicy na podstawie określonych kryteriów
const myArray = [{x:100}, {x:200}, {x:300}];
const newArray = myArray.filter(element => element.x > 250);
console.log(newArray);
Uwaga: Metoda filter () tworzy nową tablicę ze wszystkimi elementami, które przejdą test implementowany przez podaną funkcję.
8. Sortuj tablicę
const people = [
{ name: "John", age: 21 },
{ name: "Peter", age: 31 },
{ name: "Andrew", age: 29 },
{ name: "Thomas", age: 25 }
];
let sortByAge = people.sort(function (p1, p2) {
return p1.age - p2.age;
});
console.log(sortByAge);
9. Znajdź element w tablicy
const people = [ {name: "john", age:23},
{name: "john", age:43},
{name: "jim", age:101},
{name: "bob", age:67} ];
const john = people.find(person => person.name === 'john');
console.log(john);
Metoda Array.prototype.find () zwraca wartość pierwszego elementu tablicy, który spełnia podaną funkcję testującą.
Bibliografia