Оглавление
* Итерационные методы map(), every(), filter(), forEach(), some().
* Методы сокращения reduce() и reduceRight( ).
* Манипуляционные методы concat(), slice() и splice().
* Методы переупорядочения reverse() и sort().
* push(), pop(), shift (), unshift().
* Удалить повторяющийся элемент из массива
* Заменить определенный элемент в массиве
* Сопоставить массив без использования map()
* Очистить массив
* Заполнить массив данными.
* Объединить два или более массива
* Перевернуть массив
Массив Итерационные методы -
map() — метод создает новый массив с результатами вызова функции для каждого элемента массива. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let arr = [6, 9, 12, 15]; //array with different numbers let newArr = arr.map(Math.sqrt); // calculate the square root of all the number in array //output Console.log(newArr); //[2.449489742783178, 3, 3.4641016151377544, 3.872983346207417]
every() —возвращает true, если метод возвращает true для всех элементов в массиве. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let age = [34, 36, 40, 18]; //array of age let age_greater_than_18 = age.every(item => item > 18); //compare for all the values and return true if all the ages are greater than 18 //output console.log(age_greater_than_18); //false let age = [34, 36, 40, 19]; //array of age let age_greater_than_18 = age.every(item => item > 18); //output console.log(age_greater_than_18); //true
filter() — возвращает массив всех элементов, для которых метод возвращает значение true. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let ages = [32, 33, 16, 40]; // array of ages let age_18_or_over = ages.filter(age => age >= 18); //return all the ages 18 or over //output console.log(age_18_or_over); //[32, 33, 40]
forEach() — запускает функцию для каждого элемента в массиве и не возвращает никакого значения.
let fruits = ["apple", "orange", "mango"]; //fruits array fruits.forEach((fruit, index) => console.log(index, fruit)); //output 0 "apple" 1 "orange" 2 "mango"
some() —возвращает true, если функция возвращает true хотя бы для одного из элементов. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let age = [34, 36, 40, 18]; //array of age let age_greater_than_18 = age.some(item => item > 18); //output console.log(age_greater_than_18); //true
Методы сокращения массива
reduce() – перебирает элементы, начиная с конца массива, и возвращает единственное значение. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let numbers = [1,2,3,4,5,6,7,8,9]; let sum = numbers.reduce((total, currentNumber) => total + currentNumber, 0); //in this I have provided the 2nd parameter as number which is 0 //output console.log(sum) //45 let sum = numbers.reduce((total, currentNumber) => total + currentNumber, ''); //in this I have provided the 2nd parameter as empty string, we start from '' add concatenate each value, starting from the left //output "123456789"
reduceRight() —перебирает элементы, начиная с конца массива, и возвращает единственное значение. Это не изменяет исходный массив, а также не выполняется для пустого массива.
let numbers = [1,2,3,4,5,6,7,8,9]; let sum = numbers.reduceRight((total, currentNumber) => total + currentNumber, ''); //in this I have provided the 2nd parameter as empty string, we start from '' add concatenate each value, starting from the right //output "987654321"
Методы манипулирования
concat() — Concat позволяет объединить/объединить несколько массивов. Этот метод объединяет массивы и возвращает новый массив. Здесь исходный массив не изменяется, изменения вносятся в копию исходного массива.
let value1 = [1,2,3,4,5]; let value2 = [6,7,8,9,10]; let concatVal = value1.concat(value2); //output console.log(concatVal); //[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice() —Slice похож на concat, он создает копию массива с той же последовательностью исходного массива. Если параметр отсутствует, он возвращает исходный массив. С одним аргументом он возвращает значение от этого индекса до последнего индекса массива. Его также можно использовать с двумя аргументами: начальный индекс и конечный индекс, в этом случае он вернет элементы между этим интервалом.
let numbers = [1,2,3,4,5]; console.log(numbers.slice()); console.log(numbers.slice(1)); console.log(numbers.slice(0,2)); //output [1, 2, 3, 4, 5] [2, 3, 4, 5] [1, 2]
splice() —Splice почти аналогичен concat и slice, единственное отличие состоит в том, что он выполняет операцию над исходным массивом, поэтому будьте очень осторожны при его использовании, так как однажды выполненное действие не будет отменено. .
let numbers = [1,2,3,4,5]; console.log(numbers.splice(0,1,10)); //it will replace the first value with 10 //output [10, 2, 3, 4, 5]
Методы переупорядочения массива
reverse() — переворачивает порядок элементов и создает дубликат исходного массива. Это не повлияет на исходный массив.
let numbers = [1,2,3,4,5]; console.log(numbers.reverse()); //output [5, 4, 3, 2, 1]
sort() — укорачивает элементы массива, выполняя сравнение строк. По умолчанию он преобразует элементы в строку, а затем сравнивает.
Давайте разберемся с этим на примере ниже.
let numbers = [1,2,3,4,10]; console.log(numbers.sort()) //output [1, 10, 2, 3, 4]
Если вы проверите приведенный выше пример, вывод будет в правильном формате, верно?
Не запутайтесь, функция sort() сначала преобразует все элементы в строку, а затем сравнит, поэтому в этом случае «10» больше, чем 2 .
Есть решение для сортировки элементов без предварительного преобразования в строку, давайте проверим это
let numbers = [1,2,3,4,10]; console.log(numbers.sort((val1, val2) => val1 - val2)) //output [1, 2, 3, 4, 10]
В приведенном выше примере функция принимает дополнительные параметры, которые заменяют поведение сравнения строк по умолчанию.
push() —добавляет элемент в конец массива и возвращает новую длину массива. Он внес изменения в исходный массив.
let numbers = [1,2,3,4,10]; console.log(numbers.push(11)); console.log(numbers); //output 6 [1, 2, 3, 4, 10, 11]
pop() — удаляет последний элемент из массива и возвращает удаленный элемент. Он внес изменения в исходный массив.
let numbers = [1,2,3,4,10]; console.log(numbers.pop()); console.log(numbers); //output 10 [1, 2, 3, 4]
shift() —удаляет первый элемент массива и возвращает удаленный элемент. Он внес изменения в исходный массив.
let numbers = [1,2,3,4,10]; console.log(numbers.shift()); console.log(numbers); //output 1 [2, 3, 4, 10]
unsift() —добавляет новый элемент в начало массива и возвращает новую длину массива.
let numbers = [1,2,3,4,10]; console.log(numbers.unshift(0)); console.log(numbers); //output 6 [0, 1, 2, 3, 4, 10]
Удалить повторяющийся элемент из массива
Как извлечь уникальные значения из массива Javascript, давайте попробуем найти решение на примере ниже.
let fruits = ["banana", "mango", "grapes", "orange", "mango"]; method 1 - console.log(Array.from(new Set(fruits))); method 2 - console.log([...new Set(fruits)]); Output 1 - ["banana", "mango", "grapes", "orange"] Output 2 - ["banana", "mango", "grapes", "orange"]
В приведенном выше примере я использую new Set() для извлечения уникальных значений, также я использую 2 разных способа сделать одно и то же.
Заменить определенный элемент в массиве
Иногда нам нужно удалить конкретное значение из массива во время кодирования. Splice() упростил нам задачу. Мы уже обсуждали выше синтаксис и функциональность функции splice.
Сопоставьте массив без использования map()
Как мы уже обсуждали использование функции map, синтаксис и где мы это используем, теперь мы собираемся проверить, как отображать и массивировать без использования map().
let subjects = [ { name: 'Science', class: 1 }, { name: 'Maths', class: 2 }, { name: 'English', class: 3 }, ] console.log(Array.from(subjects, ({name}) => name)); //output ["Science", "Maths", "English"]
Очистить массив
Очистить массив очень просто, нам просто нужно установить длину массива равной 0. давайте попробуем
let fruits = ["banana", "mango", "grapes", "orange", "mango"]; fruits.length = 0; console.log(fruits) //output []
Заполнить массив данными
Функция fill () появляется, когда нам нужно заполнить некоторые данные или нам нужно заполнить те же значения в массиве.
var dataArr = new Array(10).fill("1"); console.log(dataArr) //output ["1", "1", "1", "1", "1", "1", "1", "1", "1", "1"]
Объединить два или более массива
Мы можем объединить два или более массива, используя функцию concat(). Мы уже обсуждали функциональность и синтаксис concate() выше, пожалуйста, обратитесь к этому.
Перевернуть массив
Если нам нужно перевернуть наш массив, нет необходимости использовать цикл, мы можем легко добиться этого с помощью функции reverse. Давайте проверим пример
let fruits = ["banana", "mango", "grapes", "orange", "mango"]; console.log(fruits.reverse()); //output ["mango", "orange", "grapes", "mango", "banana"]
В этой статье я рассмотрел большинство функций работы с массивами и буду постоянно добавлять новые. Не стесняйтесь комментировать, если я пропущу какую-либо функцию, я добавлю это.
Удачного кодирования!!