Вспомогательные методы JavaScript
Массив в JavaScript обычно рассматривается как «объекты-списки». Проще говоря, мы можем сказать, что массив - это объект, который содержит некоторые значения. Но массив - это особый объект в JavaScript. Массив может хранить разнородные структуры данных. Он может хранить значения данных любого типа, такие как объекты и массивы.
Javascript
const arr = [ 1, // Number type "Praveen kumar" , // String type { // Object type firstname: "Christopher" , lastname: 'Nolan' }, [9.1, 9.2, 8.7, 5] // Array type ]; console.log( arr ); |
В JavaScript массив - это объект. Если массив является объектом, то почему мы не используем объект вместо массива ». После долгих исследований мы обнаружили, что можем использовать объект вместо массива. Но с некоторыми оговорками.
В приведенной выше программе и объект, и массив хранят данные одинаково. Но есть разница.
Первый - это массив, содержащий свойство с именем length. Он сообщает нам количество элементов в массиве. Это не единственная разница. Основное различие проявляется, когда вы открываете свойство __proto__ как массива, так и объекта. Массив имеет несколько отличных вспомогательных методов, которые мы собираемся обсудить в этой статье. Давайте обсудим некоторые важные методы.
1. Метод every (): этот метод используется для проверки, все ли элементы массива проходят тест, который реализуется переданной функцией высшего порядка. Под капотом компилятор выполняет итерацию по массиву сотрудников и проверяет всех сотрудников , является он разработчиком или нет. Как и в этом случае, он должен вернуть false .
Вход:
функция предиката
Выход:
Логическое значение
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function isDeveloper(employee) { return employee.role === "Developer" ; } console.log(employees.every(isDeveloper)); |
Выход:
ложный
2. Метод fill (): этот метод заполняет массив статическим значением. Он отменяет все значения массива, начиная с первого элемента (0-й индекс) и до последнего элемента (индекс array.length-1).
Вход:
value
Выход:
Модифицированный массив
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; const newEmployees = employees.fill( { name: "Sam" , age: 25, role: "Developer" }); console.log(employees); console.log(newEmployees === employees); // true |
Выход:
[ {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'} ] правда
3. Метод filter (): этот метод фильтрует массив, который проходит тест, с переданной ему функцией. Он возвращает новый массив.
Вход:
Функция предиката
Выход :
Новый массив с отфильтрованными элементами
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function filterDevEmp(employee) { return employee.role === "Developer" ; } const filteredDevEmployees = employees.filter(filterDevEmp); console.log(filteredDevEmployees); |
Выход:
[ {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Perker', возраст: 25, роль: 'Developer'}, {имя: 'kristine', возраст: 21, роль: 'Разработчик'} ]
4. Метод find (): этот метод возвращает первый элемент, прошедший проверку с предоставленной функцией.
Вход:
Функция предиката
Выход:
Элемент, прошедший проверку else undefined
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function searchFirstDevEmployee(employee) { return employee.role === "Developer" ; } const firstEmployeeDeveloper = employees.find(searchFirstDevEmployee); console.log(firstEmployeeDeveloper); |
Выход:
{имя: 'Сэм', возраст: 25, роль: 'Разработчик'}
5. Метод findIndex (): этот метод возвращает индекс первого элемента, прошедшего проверку с предоставленной функцией. Его можно использовать как для примитивов, так и для объектов.
Вход:
Функция предиката
Выход:
индекс элемента, прошедшего проверку else -1
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function searchFirstArchitectEmployeeIndex(employee) { return employee.role === "Architect" ; } const firstEmpArchitectIndex = employees.findIndex(searchFirstArchitectEmployeeIndex); console.log(firstEmpArchitectIndex); |
Выход:
2
6. Метод flat (): этот метод используется для сглаживания массива или рекурсивного объединения массива с элементами подмассива.
Вход:
глубина (значение по умолчанию 1)
Выход:
Новый массив
Javascript
const arr1 = [1, [2, 3, 4], 5]; const flattened1 = arr1.flat(); console.log(flattened1); // [ 1, 2, 3, 4, 5 ] const arr2 = [1, 2, [3, 4, [5, 6]]]; const flattened2 = arr2.flat(); console.log(flattened2); // [1, 2, 3, 4, [5, 6]] |
Выход:
[1, 2, 3, 4, 5] [1, 2, 3, 4, [5, 6]]
7. Метод forEach (): это один из наиболее часто используемых методов. Он используется для вызова или выполнения предоставленной / переданной функции один раз для каждого элемента в массиве. Он изменяет исходный массив.
Вход:
функция
Выход:
неопределенный
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function increaseAgeByOne(employee) { employee.age += 1; } employees.forEach(increaseAgeByOne); console.log(employees); |
Выход:
[ {имя: 'Сэм', возраст: 26, роль: 'Разработчик'}, {имя: 'Джон', возраст: 33, роль: 'Менеджер'}, {имя: 'Роналду', возраст: 30, роль: 'Архитектор'}, {имя: 'Perker', возраст: 26, роль: 'Разработчик'}, {имя: 'София', возраст: 39 лет, роль: 'Режиссер'}, {имя: 'kristine', возраст: 22, роль: 'Разработчик'} ]
8. Метод includes (): этот метод используется для проверки того, присутствует ли элемент в массиве или нет. Он проверяет значение в примитиве и ссылку в случае объекта.
Вход:
ценить
Выход:
Массив погоды логического значения включает значение или нет
Javascript
const numbers = [1, 6, 8, 11, 5, 9, 4]; console.log( numbers.includes(6) ); console.log( numbers.includes(3) ); |
Выход:
правда ложный
В случае объекта
Javascript
const arch = { name: "Ronaldo" , age: 29, role: "Architect" }; const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, arch, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; console.log(employees.includes(arch)); |
Выход:
правда
9. Метод indexOf (): этот метод возвращает индекс первого элемента, прошедшего проверку с предоставленной функцией. В качестве входных данных требуется значение. Его следует использовать в случае примитивов. Как и в случае с объектами, он проверит ссылку на него. Проверка чувствительна к регистру.
Вход:
ценить
Выход:
индекс элемента, прошедшего проверку else -1
Javascript
const names = [ "Sam" , "John" , "Ronaldo" , "Perker" , "Sophia" , "kristine" ]; names.indexOf( "John" ); names.indexOf( "john" ); |
Выход:
1 -1
10. Метод join (): этот метод объединяет значения массива в строку, разделенную запятой (если разделитель не указан) или с предоставленным разделителем.
Вход:
разделитель
Выход:
Новая строка
Javascript
const names = [ "Sam" , "John" , "Ronaldo" , "Perker" , "Sophia" , "kristine" ]; console.log( names.join() ); console.log( names.join( " -> " ) ); |
Выход:
'Сэм, Джон, Роналду, Перкер, София, Кристина' 'Сэм -> Джон -> Роналду -> Перкер -> София -> Кристина'
11. Метод lastIndexOf (): он ищет элемент в массиве и возвращает последний индекс элементов, представленных в массиве. В качестве входных данных требуется значение. Его следует использовать в случае примитивов. Как и в случае с объектами, он проверит ссылку на него.
Вход:
ценить
Выход:
индекс последнего элемента, который равен (тест с использованием ===) к значению при условии еще -1
Javascript
const roles = [ "Developer" , "Manager" , "Architect" , "Developer" , "Director" , "Developer" ]; console.log(roles.lastIndexOf( "Developer" )); |
Выход:
5
12. Метод map (): этот метод вызывает предоставленную функцию и выполняет эту функцию для каждого элемента. Он возвращает новый массив.
Вход:
функция
Выход:
новый массив
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function getName(employee) { return employee.name; } const names = employees.map(getName); console.log(names); function concetenateNameWithAge(employee) { return employee.name + " " + employee.age; } const nameWithAge = employees.map(concetenateNameWithAge); console.log(nameWithAge); |
Выход:
[«Сэм», «Джон», «Роналду», «Перкер», «София», «Кристина»] [ 'Сэм 25', 'Иоанна 32', 'Роналду 29', 'Перкер 25', 'София 38', 'Кристина 21' ]
13. Метод pop (): удаляет последний элемент из массива и возвращает удаленный элемент.
Выход:
Удаленный элемент
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; const removedEmployee = employees.pop(); console.log(removedEmployee); console.log(employees.length); |
Выход:
{имя: 'kristine', возраст: 21, роль: 'Разработчик'} 5
14. Метод push (): он добавляет или выталкивает элемент в качестве последнего элемента в массиве.
Вход:
Элемент массива
Выход:
новая длина массива
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; const totalEmployees = employees.push({ name: "Donald" , age: 21, role: "Manager" }); console.log(employees); console.log( totalEmployees ); |
Выход:
[ {имя: 'Сэм', возраст: 25, роль: 'Разработчик'}, {имя: 'Джон', возраст: 32, роль: 'Менеджер'}, {имя: 'Роналду', возраст: 29, роль: 'Архитектор'}, {имя: 'Perker', возраст: 25, роль: 'Developer'}, {имя: 'София', возраст: 38, роль: 'Режиссер'}, {имя: 'kristine', возраст: 21, роль: 'Разработчик'}, {имя: 'Дональд', возраст: 21, роль: 'менеджер'} ] 7
15. Метод reduce (). Метод уменьшения () массива выполняет функцию сокращения, которую вы передаете каждому элементу, и всегда возвращает одно значение. Функция редуктора принимает 4 параметра
- Аккумулятор
- Текущая стоимость
- Текущий индекс массива
- Исходный массив
Примечание: функция редуктора всегда возвращает значение, и значение присваивается аккумулятору на следующей итерации.
Вход:
Первый аргумент - это функция редуктора, которая требует минимум 2 значение, т.е. аккумулятор и текущее значение. Второй аргумент - начальное значение аккумулятора.
Выход:
Одно значение.
Если значение аккумулятора не указано, то первое или начальное значение исходного массива принимается в качестве второго аргумента метода сокращения, и итерация начинается со следующего за начальным значением исходного массива.
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function getRoleReducer(acc, currentValue) { acc.push(currentValue.role); return acc; } const roles = employees.reduce(getRoleReducer, []); console.log(roles); |
Выход:
[ "Разработчик", 'Менеджер', 'Архитектор', "Разработчик", 'Директор', 'Разработчик' ]
16. Метод reduceRight (): он точно такой же, как метод уменьшения массива, но итерация начинается справа налево.
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; function getRoleReducer(acc, currentValue) { acc.push(currentValue.role); return acc; } const roles = employees.reduceRight(getRoleReducer, []); console.log(roles); |
Выход:
[ "Разработчик", 'Директор', "Разработчик", 'Архитектор', 'Менеджер', 'Разработчик' ]
17. Метод reverse (): этот метод переворачивает элементы массива.
Выход:
Тот же массив, но с перевернутыми элементами
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; const reversedEmployees = employees.reverse(); console.log(reversedEmployees); console.log(employees === reversedEmployees); |
Выход:
[ {имя: 'kristine', возраст: 21, роль: 'Разработчик'}, {имя: 'София', возраст: 38, роль: 'Режиссер'}, {имя: 'Perker', возраст: 25, роль: 'Developer'}, {имя: 'Роналду', возраст: 29, роль: 'Архитектор'}, {имя: 'Джон', возраст: 32, роль: 'Менеджер'}, {имя: 'Сэм', возраст: 25, роль: 'Разработчик'} ] правда
18. Метод shift (): удаляет первый элемент из массива и возвращает удаленный элемент.
Выход:
удаленный элемент или если массив пуст, возвращает undefined
Javascript
const employees = [ { name: "Sam" , age: 25, role: "Developer" }, { name: "John" , age: 32, role: "Manager" }, { name: "Ronaldo" , age: 29, role: "Architect" }, { name: "Perker" , age: 25, role: "Developer" }, { name: "Sophia" , age: 38, role: "Director" }, { name: "kristine" , age: 21, role: "Developer" }, ]; const removedEmployee = employees.shift(); console.log(removedEmployee); console.log(employees); |
Выход:
{имя: 'Сэм', возраст: 25, роль: 'Разработчик'} [ {имя: 'Джон', возраст: 32, роль: 'Менеджер'}, {имя: 'Роналду', возраст: 29, роль: 'Архитектор'}, {имя: 'Perker', возраст: 25, роль: 'Developer'}, {имя: 'София', возраст: 38, роль: 'Режиссер'}, {имя: 'kristine', возраст: 21, роль: 'Разработчик'} ]
19. Метод slice (): Метод slice () возвращает новый массив с элементами, указанными в начальном и конечном индексах. Новый массив содержит элемент в начальном индексе, но не включает элемент в конце индекса. Если конечный индекс не указан, он рассматривается как array.length-1 . Метод среза не изменяет исходный массив.
Вход:
Начальный индекс и конечный индекс
Выход:
Новый массив
HTML
const employees = [ РЕКОМЕНДУЕМЫЕ СТАТЬИ |