如果在JavaScript中为null或未定义,则replace值
我有一个要求应用??
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]
)。 有没有办法绕过它? (我不知道事先的filter属性的名称,不想迭代它们)。
这里是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 ''
这可以通过索引访问。
我发现一半的问题:我不能使用'索引器'符号对象(my_object [0])。 有没有办法绕过它?
没有; 正如名字所暗示的,一个对象字面值是一个对象 ,而不是一个数组,所以你不能简单地根据一个索引检索一个属性,因为没有特定的属性顺序。 检索其值的唯一方法是使用特定的名称:
var someVar = options.filters.firstName; //Returns 'abc'
或者使用for ... in
循环遍历它们:
for(var p in options.filters) { var someVar = options.filters[p]; //Returns the property being iterated }