JavaScript 三元运算条件后的多个动作
Multiple actions after a condition in a JavaScript ternary operation
我正在尝试创建一个三元表达式,如果为真,我将为一个对象分配几个新键。
这returns一个错误:
const entity = {};
element.data.icon ?
entity['url'] = element.data.icon.data.image[0].url
entity['alt'] = element.data.icon.data.image[0].alt
entity['title'] = element.data.icon.data.image[0].title :
entity['url'] = ''
我正在尝试获得与此等效的内容:
const entity = {};
if (element.data.icon) {
entity['url'] = element.data.icon.data.image[0].url
entity['alt'] = element.data.icon.data.image[0].alt
entity['title'] = element.data.icon.data.image[0].title
}
entity['url'] = ''
我应该怎么做?如果可能的话
为什么不直接使用 if
版本呢?它会更具可读性。
话虽如此,您可以像这样使用逗号:
element.data.icon
? (entity['url'] = element.data.icon.data.image[0].url,
entity['alt'] = element.data.icon.data.image[0].alt,
entity['title'] = element.data.icon.data.image[0].title)
: entity['url'] = '';
您可以使用三元分配不同的完整对象:
const entity = element.data.icon
? {
url: element.data.icon.data.image[0].url,
alt: element.data.icon.data.image[0].alt,
title: element.data.icon.data.image[0].title
}
: {
url: ""
};
我正在尝试创建一个三元表达式,如果为真,我将为一个对象分配几个新键。 这returns一个错误:
const entity = {};
element.data.icon ?
entity['url'] = element.data.icon.data.image[0].url
entity['alt'] = element.data.icon.data.image[0].alt
entity['title'] = element.data.icon.data.image[0].title :
entity['url'] = ''
我正在尝试获得与此等效的内容:
const entity = {};
if (element.data.icon) {
entity['url'] = element.data.icon.data.image[0].url
entity['alt'] = element.data.icon.data.image[0].alt
entity['title'] = element.data.icon.data.image[0].title
}
entity['url'] = ''
我应该怎么做?如果可能的话
为什么不直接使用 if
版本呢?它会更具可读性。
话虽如此,您可以像这样使用逗号:
element.data.icon
? (entity['url'] = element.data.icon.data.image[0].url,
entity['alt'] = element.data.icon.data.image[0].alt,
entity['title'] = element.data.icon.data.image[0].title)
: entity['url'] = '';
您可以使用三元分配不同的完整对象:
const entity = element.data.icon
? {
url: element.data.icon.data.image[0].url,
alt: element.data.icon.data.image[0].alt,
title: element.data.icon.data.image[0].title
}
: {
url: ""
};