пятница, 9 июня 2017 г.

Sorax. 25. ES5 методы массивов

// Все методы не изменяют исходный массив. Они возвращают новый массив.



var array = ["Some string", "Another string", "Third string", "JavaScript", "Sorax"];

/* array.forEach(function(element, index, array){
// console.log(element); // выводит все элементы массива
array[index] = element.toUpperCase();
});

console.log(array); // Array [ "SOME STRING", "ANOTHER STRING", "THIRD STRING", "JAVASCRIPT", "SORAX" ] */

// Метод map() создаёт новый массив с результатом вызова указанной функции для каждого элемента массива.
// console.log(array.map(function(e){return e.toUpperCase()})); // Array [ "SOME STRING", "ANOTHER STRING", "THIRD STRING", "JAVASCRIPT", "SORAX" ]

// Метод filter() создаёт новый массив со всеми элементами, прошедшими проверку, задаваемую в передаваемой функции.
// Метод filter() отсеивает элементы из массива по к-л критерию.
var filtered = array.filter(function(e){
return e.indexOf('o') === -1; // отсеим все строки, содержащие букву о
});

console.log(filtered); // Array [ "Third string", "JavaScript" ]

// Метод every() проверяет, удовлетворяют ли все элементы массива условию, заданному в передаваемой функции.
// проверим имеют ли строки имеют длину больше 4 символов
console.log(array.every(function(e){return e.length > 4})); // true

// some() возвращает истину, если в массиве сть хотя бы один элемент для которого выполняется условие.
// проверим есть ли в массиве хотя бы одна строка, содержащая букву z
console.log(array.some(function(e){return e.indexOf('z') !== -1;})); // false

/*
 Метод reduce используется для вычисления на основе массива какого-либо единого значения,
 иначе говорят «для свёртки массива».
 a - промежуточное значение
 b - текущее значение

var numbers = [1, 2, 3, 4, 5, 6];
var reduced = numbers.reduce(function(a, b){
return a + b; // сложим все элементы массива
});
console.log(reduced); // 21


var numbers = [1, 2, 3, 4, 5, 6];
var reduced = numbers.reduce(function(a, b){
return a * (b % 3 === 0 ? b : 1); // премножим только числа кратные трем
});
console.log(reduced); // 18


// reduceRight проходит массив справа налево
var numbers = [1, 2, 3, 4, 5, 6];
var reduced = numbers.reduceRight(function(a, b){
return a * b;
});
console.log(reduced); // 720
*/

var numbers = [1, 2, 3, 4, 5, 6];
var reduced = numbers.reduceRight(function(a, b){
return a - b;
});
console.log(reduced); // -9

/*
МЕТОДЫ ДЛЯ ПОИСКА ЭЛЕМЕНТОВ В МАССИВЕ
Метод indexOf() возвращает индекс первого вхождения указанного значения в строковый объект String,
на котором он был вызван, начиная с индекса fromIndex. Возвращает -1, если значение не найдено.

Метод lastIndexOf() возвращает индекс последнего вхождения указанного значения в строковый объект String,
на котором он был вызван, или -1, если ничего не было найдено.
Поиск по строке ведётся от конца к началу, начиная с индекса fromIndex
*/

var numbers = [1, 2, 3, 4, 5, 3, 6];
console.log(numbers.indexOf(3)); // 2
console.log(numbers.lastIndexOf(3)); // 5
console.log(numbers.lastIndexOf(10)); // -1

Комментариев нет:

Отправить комментарий