Функция стрелки
Выражение функции стрелки является синтаксически компактной альтернативой регулярному выражению функции, хотя и без собственных привязок к this, Аргументы, ключевые слова super или new.target. Выражения функций стрелок плохо подходят в качестве методов, и их нельзя использовать в качестве конструкторов.
Функция карты
Метод map () создает новый массив, заполненный результатами вызова предоставленной функции для каждого элемента в вызывающем массиве.
.map()
функция потребует, чтобы вы возвращали значение для каждого итерация. Если вы хотите только l oop через массив для выполнения побочных эффектов, вы можете рассмотреть forEach
или другую функцию l oop.
В вашем случае, я вижу, вы хотите изменить latestMetric
в res.data
условно вы можете сделать это:
const chartData = res.data.map(data => ({
...data,
latestMetric: data.latestMetric === null ? dummyLatestMetric : data.latestMetric,
});
Синтаксис распространит свойства data
в новый объект, а затем мы условно установим значение latestMetric
на основе условия
Если вы не хотите использовать синтаксис распространения, вы также можете использовать традиционный Object.assign метод:
const chartData = res.data.map(data => Object.assign({}, data, {
latestMetric: data.latestMetric === null ? dummyLatestMetric : data.latestMetric,
});
Что касается вашей защитной стратегии, вас может заинтересовать использование синтаксиса ||
для этого, но будьте осторожны, так как он проверяет все ложные значения (включает: false
, 0
, null
, undefined
, et c.)
const chartData = res.data.map(data => ({
...data,
latestMetric: data.latestMetric || dummyLatestMetric,
});
И последнее, но не менее важное: вам лучше сначала понять правило ESLint и прочитать причину этого практика программирования, чтобы увидеть, хотите ли вы использовать это правило, или изменить его, или даже отключить его для вашего проекта. * 1 054 *
Ссылка: https://eslint.org/docs/rules/no-return-assign