如果不是未定义和索引('foo')做某事
if Not undefined and indexOf ('foo') do something
所以我试图调用where,如果不是未定义并且索引是foo,所以我使用:
if (typeof(getdata(js, 'box1')) != "undefined"
&& (getdata(js, 'box1')).indexOf('foo') >= 0) {
// Do something
}
这工作正常,但我不想调用两次 getdata。有没有办法说如果getdata
不是未定义的,并且 indexOf 是 foo,那么做一些事情,而不调用 getdata()
函数两次?
备选方案:
if (/foo/.test(getdata(js, "box1"))) {
// do something
}
虽然这允许您通过一次检查来侥幸逃脱,但涉及如此简单的测试的正则表达式可能会令人皱眉:)
最好使用局部变量来存储函数调用的结果:
var data = getdata(js, "box1");
if (data && data.indexOf("foo") ==! -1) {
// do something
}
另请注意,typeof
是运算符而不是函数:
typeof something // instead of typeof(something)
你试过吗
var data = getdata(js, 'box1');
if(typeof(data) != 'undefined' && data.indexOf('foo') >= 0) {
}
如果值未定义或为 null,则可以读取值的 indexOf 或空字符串。
if ( (getdata(js, 'box1') || '').indexOf('foo') !=-1) {
// Do something
}
希望您的函数只会返回一个字符串,未定义或 null。
相关文章:
- 名称输入的索引
- 在jQuery中获取表的行索引
- 测试索引值是否等于某个数字的倍数
- 循环遍历数组中的特定索引
- 按照选项卡索引的顺序循环一个jQuery选择
- 在JavaScript中通过索引从对象数组中获取值
- 尝试在PHP中回显输入文本时出现未定义的索引错误
- 在索引.html和应用.js [node.js] 之间共享变量
- 如何为高图中的区域线创建z索引
- 下拉列表在使用z索引放置在前面后停止工作
- 减去两个索引不同但值相同的整数
- 如何通过所选索引(AngularJS)在模态弹出窗口中显示数据
- Javascript:根据对象的嵌套数组中的值,在数组中查找对象的索引
- 用javascript查询lucene索引
- 使用它更新集合中的嵌套数组's索引
- 如何将ng选项的索引作为angularJs中的值传递给模型
- Javascript获取所有锚链接的索引
- 多维关联数组的最后一个索引
- 如果不是未定义和索引('foo')做某事
- Javascript对象的行为不同,基于索引结尾:foo vs.foo()