Я хочу напечатать первое и последнее имя строки в моей функции, но если какой-либо параметр не определен, он печатает undefined, но вместо этого я хочу использовать значение по умолчанию. Я хочу выполнить это, используя функции es6/es7, и вот мои усилия:
const printName = (name = { first: 'K', last: 'M', separator: ' '}) => {
console.log("name", name);
let {first, last} = name;
fullname = '${first}${seprator}${last}';
return fullName;
}
Сейчас
let param = {first: 'A', last: undefined};
printName(param); // desired output 'A M'
let param = {first: undefined, last: 'B'};
getName(param) //desired output 'K B'
Если пользователь забыл отправить какой-либо параметр, он должен напечатать 'K M'
Я хочу правильно использовать функции ES6, такие как оператор отдыха/распространения и Object.assign, но не достичь желаемого результата
В коде есть несколько ошибок опечатки и синтаксиса. Ваши опечатки были separator
в вашем fullName
а ваш последний вызов функции состоял в getName
(я предположил, что вы имели в виду printName
). Ваши синтаксические ошибки следующие: вам нужно создать экземпляр fullName
перед его использованием; Кроме того, наилучшей практикой является установка параметров по умолчанию по умолчанию, а не объектов, а затем установка параметров в массиве, а не в объект, и использование оператора spread ...
чтобы передать их в вашу функцию.
Последнее, что вы используете let
. Вы должны использовать это только в том случае, если вы намерены изменить значение переменной. Это говорит разработчику, что переменная со временем изменится. В отличие от const
который используется для указания разработчику, что значение переменной является константой для времени жизни переменной (отсюда и имя const).
Попробуйте следующий фрагмент кода:
const printName = (first = 'K', last = 'M', separator = ' ') => {
const fullName = '${first}${separator}${last}';
return fullName;
}
let param = ['A', undefined];
console.log(printName(...param)); // desired output 'A M'
param = [undefined, 'B'];
console.log(printName(...param)); //desired output 'K B'
Если по какой-то причине вы должны передать свои параметры в качестве объекта, вы можете сделать это следующим образом:
const printName = ({first = 'K', last = 'M'}, separator = ' ') => {
const fullName = '${first}${separator}${last}';
return fullName;
}
let param = {first: 'A', last: undefined};
console.log(printName(param)); // desired output 'A M'
param = {first: undefined, last: 'B'};
console.log(printName(param)); //desired output 'K B'
//Tyou are assigning the new values to the variables. Try this.
const printName = ({first='A',last='M',seprator=' '}) => {
let fullName = '${first}${seprator}${last}';
return fullName;
}
let param = {first: 'B',last:'X'};
console.log(printName(param));