Если сопоставленный элемент является нулевым или пустым, используйте альтернативное значение concat из 2 других свойств - PullRequest
0 голосов
/ 21 января 2019

Это мой код для сопоставления элементов при подготовке к отправке в RESTful API:

let mergeLinesData = this.incomingStepsData.map((item) => ({
    dataStepId: _.get(item, 'stepId'),
    dataStepName: _.get(item, 'stepName'),
    name: _.get(item, 'itemName')
}));

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

Как я могу предоставить значение по умолчанию, как я бы с переменными javascript, такими как

fruit = fruit || "strawberry";

И как это значение по умолчанию может быть конкатенацией dataStepName + "-" + dataStepId?

Ответы [ 3 ]

0 голосов
/ 21 января 2019

Я думаю, что легче сделать это с помощью js, чем использовать для этого lodash.Вы можете использовать деструктурирование.

let mergeLinesData = this.incomingStepsData.map(({stepId, stepName, itemName}) => ({
    dataStepId: stepId,
    dataStepName: stepName
    name: itemName || `${stepName}-${stepId}`
}));
0 голосов
/ 21 января 2019

Вы можете использовать деструктурирование с псевдонимом и значением по умолчанию :

const incomingStepsData = [{ stepId: 1, stepName: 'step1', name: 'name1' }, { stepId: 2, stepName: 'step2' }];

const mergeLinesData = incomingStepsData.map(({
  stepId: dataStepId,
  stepName: dataStepName,
  name: itemName = `${dataStepName}-${dataStepId}`
}) => ({
    dataStepId,
    dataStepName,
    itemName
}));

console.log(mergeLinesData);
0 голосов
/ 21 января 2019

Просто добавьте условный оператор в ваш код, как в вашем примере:

name: _.get(item, "itemName") || `${dataStepName}-${dataStepId}`)

В качестве альтернативы используйте третий параметр _.get():

name: _.get(item, "itemName", `${dataStepName}-${dataStepId}`)
...