Я хочу вернуть строку, если ключ недоступен в функции карты. Это моя текущая функция, в которой иногда не удавалось найти ключ edBidResponse и вернуть ошибку. конст ...

0
mrpbennett 6 Июл 2021 в 16:31

5 ответов

Лучший ответ

Используйте Optional Chaining для проверки наличия свойства существовало или нет.

Необязательное объединение в цепочку вернет undefined в зависимости от глубины, на которой не удается обнаружить несуществующее свойство. Например, если result не имеет свойства response, тогда он возвращает undefined, за исключением того, что выдает ошибку.

const winCpm = () => {
  return data.map((result) => result?.response?.response?.edBidResponse?.responseObject?.winCpm || 'Some fallback string');
};
4
Sajeeb Ahamed 6 Июл 2021 в 13:42

Вы можете сделать несколько вещей. Это решение может сработать для вас.

     const winCpm = () => {
      return data.map((result) => result.response.response.edBidResponse ? 
        result.response.response.edBidResponse.responseObject.winCpm : 'Empty value');
    };
0
Tigran Petrosyan 6 Июл 2021 в 13:37

Вы можете использовать метод get из lodash, если у вас установлен lodash.

Первый аргумент - это данные, второй - путь, а третий - значение по умолчанию.

const winCpm = () => {
    return data.map((result) =>
      _.get(result, 'response.response.edBidResponse.responseObject.winCpm', '');
    };
    console.log()
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.21/lodash.min.js"></script>
0
a2441918 6 Июл 2021 в 13:38

Просто используйте if и else:

 const winCpm = () =>
      data.map(result => {
        if (result.response.response.edBidResponse)
          return result.response.response.edBidResponse.responseObject.winCpm
        else return 'Empty Value'
      })
0
Soufiane Boutahlil 6 Июл 2021 в 13:38

Попробуйте этот фрагмент кода

import _ from "lodash"

const winCpm = () => {
  return (
    <>
      {data.map((result) => {
        let res = result.response.response
        if(_.has(res, 'edBidResponse')){
          ... do stuff accordingly
        }
        else{
          ..other code..
        }

      })}
    </>
  )
};
0
Lohitha Y 6 Июл 2021 в 13:43