Методы массива Javascript великолепны, но также и одна из самых запутанных частей Javascript. Как вы запоминаете все методы, которые вам понадобятся для написания эффективного кода? Что возвращает каждый метод массива? Когда лучше всего использовать каждый метод?

Вот методы, которые мы рассмотрим:

.filter()
.map()
.find()
.forEach()
.push()

___________________________________________________________________

Фильтр требует передачи функции обратного вызова с условием. Фильтр возвращает новый массив и не будет изменять существующий массив. Давайте взглянем:

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const lessThanFive = array.filter((val) => {
  return val < 5
})
//lessThanFive will return a new array = [1, 2, 3, 4]

___________________________________________________________________

Map делает что-то похожее на то, что делает filter, но фокус карты заключается в возвращении нового массива с измененными элементами. Также требуется функция обратного вызова. Давайте взглянем:

const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
const arrayPlusOne = array.map((val) => {
  return val + 1  
})
//arrayPlusOne will return a new array = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11]

___________________________________________________________________

Найти — это очень полезный метод поиска первого совпадения в массиве. Он вернет только одно значение в массиве. Он ищет истинное значение, поэтому нам снова понадобится функция обратного вызова. Поиск не возвращает массив.

const arrayOfNames = ['bill', 'bob', 'jill', 'rob', 'robert']
const findR = arrayOfNames.find((name) => {
  if (name[0] === 'r'){
    return name
  }
})
//findR will find the first name that starts with 'r'. This is going to be rob. 
// however, if we change order of the array to equal: 
const arrayOfNames = ['bill', 'bob', 'jill', 'robert', 'rob']
// we will then get robert, as the find method returns the first 
// truth value. 

___________________________________________________________________

Foreach — очень полезный инструмент для перебора массива. Это очень похоже на цикл for при переборе определенной длины. Он не возвращает массив. Давайте посмотрим, как это можно использовать.

const arrayOfNames = ['bill', 'bob', 'jill', 'rob', 'robert']
arrayOfNames.forEach((name) => console.log(name))
// will simply return:
// bill
// bob
// jill
// rob
// robert
// a similar way to write the same thing would be :
for (let i = 0; i < arrayOfNames.length; i++){
  console.log(arrayOfNames[i])
}
// we can eliminate the extra code and write cleaner code with using // forEach. 

___________________________________________________________________

Push очень эффективен для добавления элементов в существующий массив. Добавление элементов с помощью push может быть разрушительным, если используется неправильно. Как следует из этого слова, оно добавляет или «помещает» новый элемент в конец массива.

const arrayOfNames = ['bill', 'bob', 'jill', 'rob', 'robert']
arrayOfNames.push('bobby')
// arrayOfNames will now be ['bill', 'bob', 'jill', 'rob', 'robert', 'bobby']

___________________________________________________________________

Хотя существует гораздо больше методов массива, я использую их ежедневно и определенно могу сэкономить время при написании кода, если вы запомните, что каждый из них делает и что он возвращает. Несмотря на то, что существует множество других методов, я считаю, что они мне нравятся и могут работать в самых разных обстоятельствах.