JavaScript三元运算条件后的多个操作



我试图创建一个三元表达式,而不是当是真的,我将分配几个新键到一个对象。这会返回一个错误:

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: ""
};

相关内容

  • 没有找到相关文章

最新更新