Как я могу использовать деструктуризацию, чтобы получить целевое свойство параметра - PullRequest
0 голосов
/ 11 июля 2019

В настоящее время я прохожу тест, и проблема выглядит так: создайте функции detectCardType , validateCardExpiryDate и validateCardHolderName .Каждый из них должен принять параметр и использовать деструктуризацию объекта для получения целевого свойства параметра.

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

        const {target} = a;
      }
      const validateCardExpiryDate = ({b}) => {
        const {target} = b;
      }
      const validateCardHolderName = ({c}) => {
        const {target} = c;
      }

Я продолжаю получать You have not declared detectCardType as specified

Ответы [ 8 ]

2 голосов
/ 11 июля 2019

Возможно, вы скопировали неправильно, но я не вижу вершины, где вы определили detectCardType.В любом случае, вы деструктурируете дважды: один раз в списке параметров и один раз в объявлении переменной в функции.Вы можете просто использовать один или другой, но используя оба вида, например, argument[0].b.target вместо просто argument[0].target, который вы хотите.

1 голос
/ 11 июля 2019

Несколько вариантов. 2-й самый короткий (предложенный кем-то через редактирование), но IMO менее читаемый. Третье - просто обычная функция вместо функции стрелки.

const detectCardType = a => {
  const {target} = a;
  return target;
}

// this style also works
const validateCardExpiryDate = {target} => target;

// as does this
function validateCardHolderName(obj) {
  const {target} = obj;
  return target;
}

const a = {target: 'answer'}
const b = {target: 'hello'}
const c = {target: 'world'}

console.log(detectCardType(a));
// "answer"
console.log(validateCardExpiryDate(b));
// "hello"
console.log(validateCardHolderName(c));
// "world"
1 голос
/ 11 июля 2019
const validateCardExpiryDate = (a) => {
        const {target} = a;
        return target;
}
console.log(validateCardExpiryDate({target:'some target'}));
0 голосов
/ 14 июля 2019

Если вам не требуется явное возвращение , это должно работать.

const detectCardType = ({target}) => {
        return target;
      };

для явных возвратов или стенографически используйте это

const detectCardType = ({target}) => target;
0 голосов
/ 12 июля 2019

Спасибо всем, кто внес свой вклад, это решило это.Ошибка, которую я сделал раньше, заключалась в том, что я был деструктурирующим дважды.

const detectCardType = ({target}) => {}
0 голосов
/ 12 июля 2019

Это должно решить это:

const detectCardType = ({target}) => {
    return target;
  } 

  const validateCardExpiryDate = ({target}) => {
    return target;
  }

  const validateCardHolderName = ({target}) => {
    return target;
  }
0 голосов
/ 12 июля 2019

Используйте следующий метод деструктуризации объекта с функциональным параметром, и вам следует продолжить тест


const detectCardType = ({target: card}) => {
    }
const validateCardExpiryDate = ({target: expiryDate}) => {
    }
const validateCardHolderName = ({target: holderName}) => {
    }

0 голосов
/ 12 июля 2019

Это должно работать в этом случае ...

      const detectCardType = ({target}) => target
      const validateCardExpiryDate = ({target}) => target   
      const validateCardHolderName = ({target}) => target
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...