Метод foreach

Принимает 3 параметра: элемент, индекс и сам массив.

let arr =  ["Один", "Два", "Три", "Четыре"];
arr.forEach((element, index, arr) =>   console.log(element));

Метод filter

Принимает 3 параметра и возвращает новый массив по результатам работы функции колбека

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.filter((element) =>   element == "Один");     
console.log(newArr);

Метод map

Позволяет создать новый массив по результатам работы функции callback

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.map((element) =>   element = "new element: "   + element);     
console.log(newArr);

Метод reduce

Позволяет развернуть массив или преобрабразовать в другую сущность. Первым значением в callback передается переменная-аккумулятор, которая хранит результаты всех вызовов

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.reduce((acc, element) =>  acc= acc  + element);     
console.log(newArr);

Метод some

Возаращает true если хоть один из элемента массива соответствует условию в callback

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.some( (element) =>  element == "Два");
console.log(newArr);

Метод every

Возаращает true если все элементы массива соответствует условию в callback

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.every( (element) =>  element == "Два");
console.log(newArr);

Метод find

Позволяет найти элемент в массиве

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.find( (element, index) =>  index == 3);
console.log(newArr);

Метод sort

Используется для сортировки массива. Изменяет исходный массив, а также по умолчанию сортирует массив как строки.

let arr =  ["Один", "Два", "Три", "Четыре"];
let newArr = arr.sort();
console.log(newArr);

Получим ["Два", "Один", "Три", "Четыре"]

let arr =  [7, 10, 30,  55];
let newArr = arr.sort();
console.log(newArr);

Получим [10, 30, 55, 7]

Для сортировки в виде цифр необходимо передать callback

let arr =  [7, 10, 30,  55];
let newArr = arr.sort((next, prev) => next - prev);
console.log(newArr);

Получим правильный результат [7, 10, 30, 55]

Задачи по методам массивов

  1. На основе массива [1,2,3,5,8,9,10] сформировать новый массив,

каждый элемент которого будет хранить информацию о числе и его четности:

[{digit: 1, odd: true}, {digit: 2, odd: false}, {digit: 3, odd: true}...]

let arr =  [1,2,3,5,8,9,10];
let newArr = arr.map((elem) => elem =  {digit: elem, odd: Boolean(elem % 2)});
console.log(newArr);
  1. Проверить, содержит ли массив [12, 4, 50, 1, 0, 18, 40] элементы, равные нулю. Если да - вернуть true.
let arr =  [12, 4, 50, 1, 0, 18, 40];
let newArr = arr.some((elem) => elem === 0);
console.log(newArr);
  1. Проверить, все элементы массива имеют длину более 3х символов ['yes', 'hello', 'no', 'easycode', 'what']. Если да - вернуть true
let arr =  ['yes', 'hello', 'no', 'easycode', 'what'];
let newArr = arr.some((elem) => elem.length > 3);
console.log(newArr);
  1. Дан массив объектов, где каждый объект содержит информацию о букве и месте её положения в строке {буква: “a”, позиция_в_предложении: 1}:

[{char:"a",index:12}, {char:"w",index:8}, {char:"Y",index:10}, {char:"p",index:3}, {char:"p",index:2},

{char:"N",index:6}, {char:" ",index:5}, {char:"y",index:4}, {char:"r",index:13}, {char:"H",index:0},

{char:"e",index:11}, {char:"a",index:1}, {char:" ",index:9}, {char:"!",index:14}, {char:"e",index:7}]

Напишите функцию, которая из элементов массива соберет и вернёт

строку, основываясь на index каждой буквы. Например:

[{char:"H",index:0}, {char:"i",index: 1}, {char:"!",index:2}] → “Hi!”

et arr = [{char:"a",index:12}, {char:"w",index:8}, {char:"Y",index:10}, {char:"p",index:3}, {char:"p",index:2},

{char:"N",index:6}, {char:" ",index:5}, {char:"y",index:4}, {char:"r",index:13}, {char:"H",index:0},

{char:"e",index:11}, {char:"a",index:1}, {char:" ",index:9}, {char:"!",index:14}, {char:"e",index:7}];

let newArr = arr.sort((prev, next) => prev.index - next.index).reduce((acc, elem) => acc += elem.char, '' );

console.log(newArr);
  1. Отсортируйте массив массивов так, чтобы вначале располагались наименьшие массивы (размер массива определяется его длиной): [ [14, 45], [1], ['a', 'c', 'd'] ] → [ [1], [14, 45], ['a', 'c', 'd'] ]
let arr = [ [14, 45], [1], ['a', 'c', 'd'] ];
let newArr = arr.sort((prev, next) => prev.length - next.length);
console.log(newArr);
  1. Есть массив объектов:

[

{cpu: 'intel', info: {cores:2, сache: 3}},

{cpu: 'intel', info: {cores:4, сache: 4}},

{cpu: 'amd', info: {cores:1, сache: 1}},

{cpu: 'intel', info: {cores:3, сache: 2}},

{cpu: 'amd', info: {cores:4, сache: 2}}

]

Отсортировать их по возрастающему количеству ядер (cores).

let arr = [

{cpu: 'intel', info: {cores:2, сache: 3}},

{cpu: 'intel', info: {cores:4, сache: 4}},

{cpu: 'amd', info: {cores:1, сache: 1}},

{cpu: 'intel', info: {cores:3, сache: 2}},

{cpu: 'amd', info: {cores:4, сache: 2}}

];
let newArr = arr.sort((prev, next) => prev.info.cores - next.info.cores);
console.log(newArr);
  1. Создать функцию, которая будет принимать массив продуктов и две цены. Функция должна вернуть все продукты, цена которых находится в указанном диапазоне, и сортировать от дешевых к дорогим:

let products = [

{title: 'prod1', price: 5.2}, {title: 'prod2', price: 0.18},

{title: 'prod3', price: 15}, {title: 'prod4', price: 25},

{title: 'prod5', price: 18.9}, {title: 'prod6', price: 8},

{title: 'prod7', price: 19}, {title: 'prod8', price: 63}

];

filterCollection(products, 15, 30) → [{...price: 15}, {...price: 18.9}, {...price: 19}, {...price: 25}]

let products = [

{title: 'prod1', price: 5.2}, {title: 'prod2', price: 0.18},

{title: 'prod3', price: 15}, {title: 'prod4', price: 25},

{title: 'prod5', price: 18.9}, {title: 'prod6', price: 8},

{title: 'prod7', price: 19}, {title: 'prod8', price: 63}

];

function filterCollection(products, min, max)
{
    return products.filter((element) => element.price > min && element.price < max).sort((prev, next) => prev.price - next.price);
}

console.log(filterCollection(products, 15, 30));