JavaScript 中多个 if 简写的语法是什么?
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': i==1 ? '-2.5px' : '-1px',
});
我希望 letter-spacing 有多个速记,例如:
'letter-spacing': i==1 ? '-2.5px' i==3 ? '-1.5px' : '-1px'
JavaScript 中多个 if 简写的语法是什么?
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': i==1 ? '-2.5px' : '-1px',
});
我希望 letter-spacing 有多个速记,例如:
'letter-spacing': i==1 ? '-2.5px' i==3 ? '-1.5px' : '-1px'
实际上,如果您想在一行代码中使用多个三元运算符,那么内联多个三元运算符并没有错或不好,但是您可以在那里使用更具可读性的样式。
但是,我的建议是使用查找对象或Array,尤其是当您有很多不同的状态时。
var values = ['1px', '-2.5px', '5px', '-1.5px'];
$('#field-'+i+' .name').css({
top: '30%',
width: '100%',
'letter-spacing': values[ i ],
});
你只是错过了:
完成你的第一个条件:
我添加了一些括号以提供一些帮助:
'letter-spacing': (i == 1) ? '2.5px' : ((i == 3) ? '-1.5px' : '-1px')
i === 1 ? '-2.5px' : i === 3 ? '-1.5px' : '-1px'
看起来你在谈论嵌套的三元表达式 - 我倾向于缩进如下:
'letter-spacing': i==1
? '-2.5px'
: i==3
? '-1.5px'
: '-1px'
如果您有很多选择,请考虑使用哈希:
var hash = {
1: '-2.5px',
3: '-1.5px'
};
进而:
'letter-spacing': hash[i] || '-1px'
如果你i
是一个整数,你可以使用一个数组,而不是一个哈希对象。但是,对象更灵活。
@ChrisFrancis:表格三元变体:
`'letter-spacing': i == 1 ? '-2.5px'
: i == 3 ? '-1.5px'
: '-1px'
在这种情况下,第一个“:”可能有点混淆,意思是别的东西,但是要调味