.map в React.js

У меня есть этот файл CarsData.js (содержание некоторой информации)

const CarsData = [
  { id: "car_01",  image: imageToyota,     title: "Toyota",      type: "SUV" },
  { id: "car_02",  image: imageAudi,       title: "Audi",        type: "SUV" },
  { id: "car_03",  image: imageNissan,     title: "Nissan",      type: "CAR" },
  { id: "car_04",  image: imageKia,        title: "Kia",         type: "TRUCK" }
]

export default CarsData

и я отображаю весь код в этом разделе CardsCars.js

const CardsCars = () => {

  const card = CarsData.map(car => {
    return <CardCar image = {car.image} title = {car.title} type = {car.type}/>
  })

  return (
  <>
    <div className='row'>

        {card} //display all the info in CarsData

    </div>
  </>
  )
}

export default CardsCars

Как я могу отображать только 2 информации из CarsData.js (а не 4 информации)

Вам нужны только первые два или любые два случайных?

wonderflame 08.05.2023 22:39

@wonderflame первые два и случайные?

Nazar Kardan 08.05.2023 22:40

@NazarKardan, какие две из четырех вещей вы хотите отобразить? Ответ зависит. Например, CarsData.slice(0, n).map(...) даст вам первые n элементы массива, но если вам не нужны только первые два, вам нужно что-то еще.

Jared Smith 08.05.2023 22:42

"@wonderflame первые два и случайные?" я не понял твоего ответа

wonderflame 08.05.2023 22:45

@wonderflame Я имею в виду, как я могу отобразить первое и второе? а если я хочу отображать только 2 случайных информации?

Nazar Kardan 08.05.2023 22:52

с помощью .slice(). Это не имеет ничего общего с React, а просто с тем, «как мне использовать массивы JS», на который ответом является «множество встроенных удобных функций, дайте им прочитать».

Mike 'Pomax' Kamermans 08.05.2023 22:53

Вы можете отобразить первые два, как упомянул @JaredSmith: CarsData.slice(0,2).map(...)

wonderflame 08.05.2023 22:53
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
3
7
65
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Вы можете использовать метод «slice()», который возвращает выбранные элементы в массиве как новый массив. Затем вы можете запустить "map()", чтобы показать данные.

CarsData.slice(0,2).map((car) => (<CardCar image = {car.image} title = {car.title} type = {car.type}/>));

В этом случае будут отображаться первые 2 информации.

Спасибо. Это работает. Могу ли я отобразить 2 случайных сообщения?

Nazar Kardan 08.05.2023 23:00

@NazarKardan Я рассказал об этом случае в своем ответе

wonderflame 08.05.2023 23:01

Если вам нужны n случайные числа, вы можете рассмотреть следующий подход:

const randomNElements = (arr = [], n = 2) => {
  const copy = [...arr];
  const result = [];
  const length = Math.min(n, copy.length);
  for (let i = 0; i < length; i++) {
    const [randomElement] = copy.splice(Math.floor(Math.random() * copy.length), 1);

    result.push(randomElement);
  }

  return result;
};

Он не изменяет исходный массив и не сохраняет порядок выбранных элементов из исходного массива.

Другие вопросы по теме