
Метод map() в JavaScript: как применять в коде, примеры для JS / React.js / Vue.js
Метод map()
в JavaScript применяется для создания нового массива на основе исходного массива, применяя к каждому элементу функцию обратного вызова и возвращая результаты в новый массив.
Он принимает функцию обратного вызова, которая вызывается для каждого элемента массива. Функция обратного вызова принимает три аргумента: значение текущего элемента, индекс текущего элемента и массив, для которого вызывается метод map()
.
Метод map()
полезен, когда необходимо преобразовать один массив в другой массив с измененными элементами. Он также может быть использован для выполнения других операций на каждом элементе массива, таких как фильтрация, сортировка и т.д.
Синтаксис метода map()
Синтаксис метода map()
выглядит следующим образом:
array.map(function(currentValue, index, arr), thisValue)
- currentValue - обязательный параметр, представляет значение текущего элемента массива.
- index - необязательный параметр, представляет индекс текущего элемента массива.
- arr - необязательный параметр, представляет массив, для которого вызывается метод
map()
. - thisValue - необязательный параметр, представляет значение this, которое будет использоваться при вызове функции обратного вызова.
Пример использования метода map()
Пример обычного использования:
const arr = [1, 2, 3, 4, 5];
const newArr = arr.map(function(element) {
return element * 2;
});
console.log(newArr); // [2, 4, 6, 8, 10]
В этом примере мы создаем новый массив newArr, применяя функцию обратного вызова, которая умножает каждый элемент исходного массива на 2. Результатом является новый массив с удвоенными значениями элементов.
Пример использования в React.js:
Давайте рассмотрим практический пример использования метода map()
в React для вывода списка статей. Для начала создадим компонент ArticleList, который будет принимать массив статей в качестве пропса и выводить каждую статью в отдельном компоненте Article.
import React from 'react';
import Article from './Article';
function ArticleList(props) {
const articles = props.articles.map((article) => (
<Article
key={article.id}
title={article.title}
author={article.author}
content={article.content}
/>
));
return <div>{articles}</div>;
}
export default ArticleList;
Как видно, мы используем метод map()
для перебора массива articles и создания нового массива из компонентов Article, которые мы выводим в компоненте ArticleList.
Теперь создадим компонент Article, который будет выводить каждую статью в отдельном блоке.
import React from 'react';
function Article(props) {
return (
<div>
<h2>{props.title}</h2>
<p>By {props.author}</p>
<p>{props.content}</p>
</div>
);
}
export default Article;
Всё, теперь мы можем использовать компонент ArticleList в других частях приложения и передавать ему массив статей для вывода, в котором будет перебор элементов с помощью метода map()
.
Пример метода map() во Vue.js
Пример метода map()
для Vue.js может выглядеть следующим образом:
<template>
<div>
<h2>Список фруктов:</h2>
<ul>
<li v-for="(fruit, index) in fruits" :key="index">
{{ index + 1 }}. {{ fruit }}
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
fruits: ['Яблоко', 'Груша', 'Апельсин', 'Банан', 'Ананас']
};
}
};
</script>
В данном примере мы создали компонент Vue.js, который выводит список фруктов. Массив фруктов хранится в свойстве fruits, а для вывода списка используется директива v-for
, которая перебирает массив fruits с помощью метода map()
.
Каждый элемент массива fruits передается в переменную fruit, а индекс текущего элемента - в переменную index. Внутри блока li мы выводим порядковый номер фрукта (индекс + 1) и его название.
Таким образом, при использовании метода map()
с директивой v-for
, мы можем перебирать массивы в Vue.js и выводить их содержимое в виде списка или таблицы.