Если вы понимаете хинди 👇

Давайте начнем блог 🎯🎯🎯🎯

🤔Что такое массивы?

Массивы — это просто списки. По сути, массив — это объект, который используется для хранения нескольких значений с их индексами в одной переменной.

Значения внутри массива называются элементами.

🍌Зачем нам это нужно?

Предположим, вы идете в супермаркет, чтобы купить фрукты. Вы хотите объявить переменную в JavaScript, в которой хранится название купленного вами фрукта, и при этом вы также хотите сохранить, какие фрукты вы купили и в каком порядке. Например: Сначала вы купили апельсины, потом яблоки, потом бананы. Итак, как вы будете решать эту проблему?

🥳Для этого можно создать массив.

// 👇 array with Element --> 'oranges', 'apples', 'bananas'
const fruits= ['oranges', 'apples', 'bananas']

console.log(fruits)

/*
Output
--> [ 'oranges', 'apples', 'bananas' ]
*/

🏵️Понимание массивов

Каждый элемент массива имеет порядковый номер. Загвоздка здесь в том, что номер индекса начинается с 0.

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

👆В коде у апельсинов будет 0 порядковый номер, у яблок 1 порядковый номер, у бананов 2 порядковый номер.

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

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

console.log(fruits[0])

😏Функция распространения в массивах

Функция распространения работает в массивах так же, как и в объектах.

const fruits = ['oranges', 'apples', 'grapes']

// 👇 ... will spread the elements of fruits in moreFruits
const moreFruits = ['bananas', 'watermelons', ...fruits]

console.log(moreFruits);

🔪Разрушение массивов

const fruits = ['oranges', 'apples', 'grapes']

const [oranges, apples, grapes] = fruits;

console.log(oranges, apples, grapes);

🫠Методы в массивах

BASIC1️⃣toString()

Что делать, если вы хотите преобразовать массив в строку.

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 toString() will convert array into a string
console.log(fruits.toString())

/*
Output
--> oranges,apples,bananas
*/

BASIC2️⃣присоединиться()

Что, если вы хотите напечатать название этих фруктов и поместить между ними символ.

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 join() will put ' + ' between the elements of an array.
console.log(fruits.join(' + '))

/*
Output
--> oranges + apples + bananas
*/

BASIC3️⃣поп()

Что делать, если вы хотите удалить последний элемент массива.

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 pop() will remove the last element from the array
fruits.pop()

console.log(fruits);

/*
Output
--> ['oranges', 'apples']
*/

BASIC4️⃣push()

Что делать, если вы хотите добавить новый элемент в свой массив

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 push() will add a new element 'grapes' in the array
fruits.push('grapes')
console.log(fruits);

/*
Output
--> ['oragnes','apples', 'bananas', 'grapes']
*/

🛑Примечание: следует отметить, что вы можете добавить несколько элементов в параметры push().

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 push() will add a new element 'grapes' in the array in the last
fruits.push('grapes', 'peaches')
console.log(fruits);

/*
Output
--> ['oranges', 'apples', 'bananas', 'grapes', 'peaches']
*/

BASIC4️⃣shift()

Представьте, что вы добираетесь до дома, и ваша мама кричит вам, что фрукты, которые вы купили первыми, не нужны. Тогда что ты будешь делать

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 shift() will remove the first element and shift all the other elements with a lower index
fruits.shift()
console.log(fruits);

/*
Output
--> ['apples', 'bananas']
*/

BASIC5️⃣отменить сдвиг()

А теперь представьте, что вы забыли принести фрукт, который любит ваша девушка, теперь 🙄 что вы будете делать

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 unshift() will add a new element 'strawberries' as the first elemtn and shift all the other elements to a higher index number
fruits.unshift('strawberries')
console.log(fruits);

/*
Output
--> ['strawberries','apples', 'bananas']
*/

🛑Примечание: следует отметить, что вы можете добавить несколько элементов в параметры unshift().

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 unshift() will add a new element 'strawberries' as the first elemtn and shift all the other elements to a higher index number
fruits.unshift('strawberries', 'peaches')
console.log(fruits);

/*
Output
--> ['strawberries','apples', 'bananas', 'peaches']
*/

BASIC6️⃣длина

Что, если твой отец спросит тебя, сколько фруктов ты принес?

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 length will return the total number of elements in the array
console.log(fruits.length);

/*
Output
--> 3
*/

BASIC8️⃣Изменение элементов

Предположим, ваша милая младшая сестра хочет, чтобы вы несли персики вместо яблок (которые являются 2-м элементом) в своей сумке, тогда как вы замените 2-й элемент персиками.

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 Notice here, if I wanted to change 2nd element,
// I have to change element with index number 1
// ,because index numbers start from 0.
fruits[1] = 'peaches'
console.log(fruits);

/*
Output
--> [ 'oranges', 'peaches', 'bananas' ]
*/

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

BASIC9️⃣удалить

нам нужно иметь возможность удалить элемент в массиве

// 👇 array
const fruits= ['oranges', 'apples', 'bananas']

// 👇 delete the element at the given index number
delete fruits[0]
console.log(fruits);

/*
Output
--> [ <1 empty item>, 'apples', 'bananas' ]
*/

🛑Примечание: следует отметить, что другие элементы не изменят свои порядковые номера, а это означает, что если мы удалим элемент между массивами, значение с порядковым номером элемента будет emtpy.

БАЗОВЫЙ🔟concat()

Что делать, если у вас есть два мешка с фруктами, и вы хотите переложить фрукты из одного мешка в другой с помощью JavaScript.

// 👇 array 1
const fruits1 = ['oranges', 'apples', 'bananas']
// 👇 array 2
const fruits2 = ['peaches', 'watermelon' , 'grapes']

// 👇 conact() will add elements of fruits 2 in fruits 1.
const bucket = fruits1.concat(fruits2)

console.log(bucket);

/*
Output
--> [ 'oranges', 'apples', 'bananas', 'peaches', 'watermelon', 'grapes' ]
*/
// 👇 array 1
const fruits1 = ['oranges', 'apples', 'bananas']
// 👇 array 2
const fruits2 = ['peaches', 'watermelon' , 'grapes']
// 👇 array 3
const fruits3 = ['muskmelon']

// 👇 conact() will add elements of fruits 2 and fruits 3 in fruits 1.
const bucket = fruits1.concat(fruits2, fruits3)

console.log(bucket);

/*
Output
--> [
  'oranges',
  'apples',
  'bananas',
  'peaches',
  'watermelon',
  'grapes',
  'muskmelon'
]
*/
// 👇 array
const fruits1 = ['oranges', 'apples', 'bananas']

// 👇 conact() will add 'peaches' in fruits 1.
const bucket = fruits1.concat('peaches')

console.log(bucket);

/*
Output
--> [ 'oranges', 'apples', 'bananas', 'peaches' ]
*/

Medium1️⃣splice()

С помощью splice вы можете добавлять или удалять любой элемент в массиве.

Параметры

  1. начальный номер — первый параметр принимает порядковый номер, по которому вы хотите добавить или удалить элементы.
  2. delete count — второй параметр принимает количество чисел, которые должны быть удалены из массива в начальном номере (первый параметр).
  3. items — Список элементов, которые будут добавлены после удаления элементов (в зависимости от количества удалений) по начальному номеру.

👇 Это пример, в котором мы удалим бананы из массива.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas']

// 👇 here, at index 2, which is bananas in our array, 1 (deletion count)
// element will be deleted.
fruits.splice(2, 1)

console.log(fruits);

/*
Output
--> [ 'oranges', 'apples' ]
*/

👇 Это пример, в котором мы удалим бананы, а также добавим персики в массив.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas']

// 👇 here, at index 2, which is bananas in our array, 1 (deletion count)
// element will be deleted.
fruits.splice(2, 1, 'peaches')

console.log(fruits);

/*
Output
--> [ 'oranges', 'apples', 'peaches' ]
*/

Что делать, если вы не хотите ничего удалять, но что-то добавить. Просто сделайте счетчик удаления равным 0.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas']

// 👇 here, at index 2, which is bananas in our array, 1 (deletion count)
// element will be deleted.
fruits.splice(2, 0, 'peaches')

console.log(fruits);

/*
Output
--> [ 'oranges', 'apples', 'bananas', 'peaches' ]
*/

Medium2️⃣slice()

Срез используется для создания нового массива, который содержит некоторые элементы из данного массива.

Параметры

  1. Start — первый параметр определяет, из какого индекса элементы должны быть выбраны для нового массива.
  2. End — Это необязательный параметр. Этот второй параметр определяет, до какого индекса элементы должны быть выбраны для нового массива.

Обратите внимание, что начальный индекс также будет включен в новый массив, тогда как конечный индекс не будет включен в новый массив.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas']

// 👇 slice will select the elements from the index number 1.
// As we have not mentioned any end then it will select the elements till the end.
const last2elements = fruits.slice(1)

console.log(last2elements);

/*
Output
--> ['apples', 'bananas']
*/
// 👇 array
const fruits = ['oranges', 'apples', 'bananas', 'peaches', 'grapes']

// 👇 slice will select the elements from the index number 1 till 2 index number.
const elementsSelected = fruits.slice(1,4)

/*
Output
--> ['apples', 'bananas', 'peaches']
*/

Легкая1️⃣сортировка()

Что делать, если вы хотите отсортировать фрукты по алфавиту.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas', 'peaches', 'grapes']

fruits.sort()

console.log(fruits);

/*
Output
--> ['apples', 'bananas', 'peaches']
*/

Easy2️⃣реверс()

Что делать, если вы хотите изменить порядок ваших фруктов.

// 👇 array
const fruits = ['oranges', 'apples', 'bananas', 'peaches', 'grapes']

fruits.reverse()

console.log(fruits);

/*
Output
--> [ 'grapes', 'peaches', 'bananas', 'apples', 'oranges' ]
*/

🥸Итерации

В массивах, если мы хотим перейти к каждому элементу и выполнить какую-то операцию, мы можем использовать итерации. По сути, это цикл, в котором наша функция выполняет какую-то операцию.

1️⃣для каждого()

С помощью forEach мы можем выполнить операцию, перейдя к каждому элементу массива.

// 👇 array
const names = ['Dhruv', 'Harshil', 'Anurag', 'Mayank']

// foreach
names.forEach((value, index, array) => {
    console.log(index + ' -> ' + value);
    console.log(array)
})

/*
Output
--> 0 -> Dhruv
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
1 -> Harshil
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
2 -> Anurag
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
3 -> Mayank
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
*/

🥰Концепция

Что происходит за forEach(), так это то, что функция переходит к индексу номер 0 и возвращает нам значение, затем она переходит к индексу номер 1 и возвращает значение по этому индексу и так далее.

ForEach() возвращает функцию обратного вызова (это функция, которая передается в другую функцию в качестве аргумента), которая имеет параметр как —

Значение — значение в порядковом номере.

Индекс — это порядковый номер значения.

Массив — возвращает массив, для которого мы выполняем итерацию.

2️⃣Карта()

// 👇 array
const names = ['Dhruv', 'Harshil', 'Anurag', 'Mayank']

// map
names.map((value, index, array) => {
    console.log(index + ' -> ' + value);
    console.log(array)
})

/*
Output
--> 0 -> Dhruv
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
1 -> Harshil
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
2 -> Anurag
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
3 -> Mayank
[ 'Dhruv', 'Harshil', 'Anurag', 'Mayank' ]
*/

🥸Разница между картой и forEach

map() похож на forEach(), но map() может что-то вернуть. Если вы попытаетесь использовать return в forEach(), это не сработает.

// 👇 array
const names = ['Dhruv', 'Harshil', 'Anurag', 'Mayank']

// map
const nameMap = names.map((value, index, array) => {
    return index + '->' + value
})

console.log(nameMap);

/*
Output
--> 0 -> Dhruv
[ '0->Dhruv', '1->Harshil', '2->Anurag', '3->Mayank' ]
*/

3️⃣Уменьшить()

Что делать, если вы создали список номеров и хотите, чтобы все номера в вашем списке были добавлены, и должен быть возвращен один единственный номер.

Параметры

а. Функция обратного вызова — имеет следующие параметры

  1. Предыдущий номер — работает как аккумулятор.
  2. Текущая стоимость
  3. текущий Индекс
  4. множество

б. Значение по умолчанию для предыдущего номера — это значение, которое вы указываете в качестве значения по умолчанию для предыдущего номера.

 // 👇 array
const numbers = [1, 2, 10, 25]

// reduce
const sum = numbers.reduce((previousNumber, currentValue, currentIndex, array) => {
    console.log(previousNumber, currentValue)
    return previousNumber + currentValue;
}, 0) // 👈 0 is the default value

console.log('--');
console.log(sum);

/*
Output
--> 0 1
1 2
3 10
13 25
--
38
*/

🛑Примечание: если вы не укажете значение по умолчанию для предыдущего числа, которое в нашем случае равно 0, тогда функция сокращения примет первый элемент массива в качестве значения по умолчанию и начнет цикл со 2-го элемента.

4️⃣ИндексОф

Что, если твоя мама попросит тебя найти порядковый номер фрукта в твоей сумке?

// 👇 array
const fruits = ["Apple", "Banana","Durian"];

// indexOf
const index = fruits.indexOf('Hi')
const index2 = fruits.indexOf('Apple')

console.log(index);
console.log(index2);

/*
Output
--> -1
0
*/

Вы можете заметить, что если элемент не выходит из массива, функция вернет -1.

5️⃣найти

Представьте, что ваша сестра разработала тест, в котором будут участвовать все фрукты, и только тот фрукт, который пройдет тест, будет возвращен.

// 👇 array
const fruits = ["Apple", "Banana","Durian", 'Apple'];

// find
const apple = fruits.find((value) => value === 'Apple')
const apple2 = fruits.find((value) => value === 'Appl')
console.log(apple);
console.log(apple2);

/*
Output
--> Apple
undefined
*/

Что делать, если вы хотите найти индекс этих значений

// 👇 array
const fruits = ["Apple", "Banana","Durian", 'Apple'];

// findIndex
const apple = fruits.findIndex((value) => value === 'Apple')
const apple2 = fruits.findIndex((value) => value === 'Appl')
console.log(apple);
console.log(apple2);

/*
Output
--> 0
-1
*/

Вы можете видеть, что если ни один элемент не проходит тест, возвращается undefined .

6️⃣Фильтр

Как мы видели, find просто возвращает один элемент, что, если вам нужен тест, в котором эти элементы должны быть удалены из массива, который проходит тест.

// 👇 array
const fruits = ["Apple", "Banana","Durian", 'Apple'];

// filter 
const fruitsWithA = fruits.filter((value ) => value.startsWith('A'))
// 👆 startsWith checks the first letter of the string.

console.log(fruitsWithA);

/*
Output
--> [ 'Apple', 'Apple' ]
*/

7️⃣включает

Что, если ты купил так много фуритов, и твой отец спрашивает тебя, не принесла ли ты ему яблоко? Как ты это проверишь

// 👇 array
const fruits = ["Apple", "Banana","Durian", 'Apple'];

// includes
const apple = fruits.includes('Apple')
const grapes = fruits.includes('grapes')

console.log(apple);
console.log(grapes);

/*
Output
--> true
false
*/

Спасибо за чтение этого блога.