我需要将??C# 运算符应用于 JavaScript,但我不知道如何。在 C# 中考虑这一点:
??
int i?=null; int j=i ?? 10;//j is now 10
现在我在 JavaScript 中设置了这个:
var options={ filters:{ firstName:'abc' } }; var filter=options.filters[0]||'';//should get 'abc' here, it doesn't happen var filter2=options.filters[1]||'';//should get empty string here, because there is only one filter
我该如何正确地做到这一点?
谢谢。
编辑:我发现了一半的问题:我不能对对象(my_object[0])使用“索引器”表示法。有没有办法绕过它?(我事先不知道过滤器属性的名称,也不想遍历它们)。
my_object[0]
这里是 JavaScript 的等价物:
var i = null; var j = i || 10; //j is now 10
请注意,逻辑运算符||不返回布尔值,而是返回第一个可以转换为 true 的值。
||
另外使用一组对象而不是一个对象:
var options = { filters: [ { name: 'firstName', value: 'abc' } ] }; var filter = options.filters[0] || ''; // is {name:'firstName', value:'abc'} var filter2 = options.filters[1] || ''; // is ''
可以通过索引访问。