相关疑难解决方法(0)

如何在JavaScript中为Internet Explorer浏览器修复Array indexOf()

如果您已经使用过任何长度的JavaScript,那么您就知道Internet Explorer没有为Array.prototype.indexOf()[包括Internet Explorer 8]实现ECMAScript函数.这不是一个大问题,因为您可以使用以下代码扩展页面上的功能.

Array.prototype.indexOf = function(obj, start) {
     for (var i = (start || 0), j = this.length; i < j; i++) {
         if (this[i] === obj) { return i; }
     }
     return -1;
}
Run Code Online (Sandbox Code Playgroud)

我什么时候应该实现这个?

我应该使用以下检查将其包装在我的所有页面上,检查是否存在原型函数,如果不存在,请继续并扩展Array原型?

if (!Array.prototype.indexOf) {

    // Implement function here

}
Run Code Online (Sandbox Code Playgroud)

或者浏览器检查,如果它是Internet Explorer,那么只需实现它?

//Pseudo-code

if (browser == IE Style Browser) {

     // Implement function here

}
Run Code Online (Sandbox Code Playgroud)

javascript internet-explorer cross-browser internet-explorer-8

294
推荐指数
7
解决办法
17万
查看次数

确定字符串是否在JavaScript中列表中

在SQL中,我们可以看到字符串是否在列表中,如下所示:

Column IN ('a', 'b', 'c')
Run Code Online (Sandbox Code Playgroud)

在JavaScript中执行此操作的好方法是什么?这样做非常笨重:

if (expression1 || expression2 || str === 'a' || str === 'b' || str === 'c') {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

而且我不确定这个的表现或清晰度:

if (expression1 || expression2 || {a:1, b:1, c:1}[str]) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

或者可以使用切换功能:

var str = 'a',
   flag = false;

switch (str) {
   case 'a':
   case 'b':
   case 'c':
      flag = true;
   default:
}

if (expression1 || expression2 || flag) {
   // do something
}
Run Code Online (Sandbox Code Playgroud)

但这是一个可怕的混乱.有任何想法吗?

在这种情况下,我必须使用Internet Explorer 7作为企业内部网页面.['a', …

javascript string list

231
推荐指数
10
解决办法
27万
查看次数

用JavaScript模仿套装?

我在使用JavaScript.我想存储一个唯一的,无序的字符串值列表,其中包含以下属性:

  1. 一个快速的方式来问'列表中的A'?
  2. 一种快速的方法'从列表中删除A(如果列表中存在)
  3. 一种快速的方法'如果它尚未存在,则将'添加到列表'.

我真正想要的是一套.有关在JavaScript中模拟集合的最佳方法的任何建议吗?

这个问题建议使用一个Object,键存储属性,并且值都设置为true:这是一种明智的方法吗?

javascript

218
推荐指数
6
解决办法
9万
查看次数

根据值列表检查变量相等性

我正在检查一个变量,例如foo,与多个值的相等性.例如,

if( foo == 1 || foo == 3 || foo == 12 ) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

关键是这个繁琐的任务代码相当多.我想出了以下内容:

if( foo in {1: 1, 3: 1, 12: 1} ) {
    // ...
}
Run Code Online (Sandbox Code Playgroud)

但这并不完全吸引我,因为我必须为对象中的项目提供冗余值.

有没有人知道对多个值进行相等检查的正确方法?

javascript

122
推荐指数
8
解决办法
11万
查看次数

简明的方法来比较多个值

考虑以下:

var a = 'jesus';

if(a == 'something' || a == 'nothing' || a=='anything' || a=='everything'){
   alert('Who cares?');
}
Run Code Online (Sandbox Code Playgroud)

有没有办法缩短它?

Javascript中有什么东西if (a=='bbb'||'ccc')吗?

另外,jQuery可以在这里帮忙吗?

javascript jquery

38
推荐指数
5
解决办法
2万
查看次数

使用OR运算符检查变量值

所以,我团队的一名初级程序员今天编写了以下代码:

if(status === ("incomplete" || "unknown"))
Run Code Online (Sandbox Code Playgroud)

这显然不会按照他的意图去做,这是:

if(status === "incomplete" || status === "unknown"))
Run Code Online (Sandbox Code Playgroud)

但我无法解释的是,为什么第一段代码无法正常工作!或者,如果'status'设置为'incomplete',则为什么评估为true;如果设置为'unknown',则为false

javascript

13
推荐指数
2
解决办法
260
查看次数

具有多个允许条件的Javascript if语句

可能重复:
Javascript:将一个值与多个值进行比较的最漂亮的方法
Javascript If用于检查文件扩展名不起作用的语句

在JS中我试图检查扩展名是否以"png""jpg"或"gif"结尾.我知道这可以通过switch语句来完成,但我想知道是否有一种更简单的方法可以将它全部放入if条件语句中.喜欢:

    if (aExtensions[i].toLowerCase() == ('jpg' || 'png' || 'gif')) {}
Run Code Online (Sandbox Code Playgroud)

实现这一目标的最佳方法是什么?

javascript

11
推荐指数
1
解决办法
2017
查看次数

检查多个对象属性中的至少一个是否为true

关于if语句,可以重构此代码

(这只是一个示例,并未引用“真实”代码)

if(person === 'customer' || person === 'employee' || person === 'other')
Run Code Online (Sandbox Code Playgroud)

if(person === ('customer' || 'employee' || 'other'))
Run Code Online (Sandbox Code Playgroud)

目前,我有一个state包含3个布尔属性的对象。如果至少有一个属性返回,我想显示一个覆盖图true。我当前的解决方案是

showOverlay: state => state.isNavigating || state.isHttpRequesting || state.isProcessing
Run Code Online (Sandbox Code Playgroud)

我在问是否有办法清理它。伪代码将是

showOverlay: state => (isNavigating || isHttpRequesting || isProcessing) of state
Run Code Online (Sandbox Code Playgroud)

我知道不会有什么大的收获,但是它将删除所有state. ...部分。

javascript

7
推荐指数
1
解决办法
72
查看次数

如何在JavaScript中嵌套OR语句?

目前我正在创建一个文件管理器.

我想要的是检查用户是否选择了视频文件.该文件可以是mov,f4v,flv,mp4swf.

我想检查我的var ext是否是其中之一.

我有的是:

if(ext == ('mov' || 'f4v' || 'flv' || 'mp4' || 'swf'))
{
    //Do something
}
Run Code Online (Sandbox Code Playgroud)

有谁知道我怎么能让这个工作.我不想使用开关,因为我会收到很多案例.

javascript nested-statement

3
推荐指数
1
解决办法
366
查看次数

Using if statement to filter data with multiple string values

Using If statement to filter data with multiple string values

i want to sort the file extension in one line because if i dont do that i have to write multiple lines of code which i think is a waste of time. can i get some help here

if (fileExtension === "jpg"||"Jpeg"||"png"||"svg"){
//do something 
}
else{
//do something else
}
Run Code Online (Sandbox Code Playgroud)

if have so file extension jpg then its directly switching to else statement and if i give just jpg i.e …

javascript

2
推荐指数
1
解决办法
61
查看次数

为什么我的病情总是如此

我想在这个例子中知道为什么我的病情总是如此?谢谢

function bla() {
  var qix = 'z'
  if (qix === 'a' || 'b' || 'c') {
     console.log('condition ok!! whats wrong???')
  }
}
Run Code Online (Sandbox Code Playgroud)

javascript lodash

1
推荐指数
1
解决办法
255
查看次数

JavaScript if语句

反正有没有这样做:

    if (document.getElementById("x").value == 2 || document.getElementById("x").value == 3) {
         //Do somthing
    }
Run Code Online (Sandbox Code Playgroud)

#我可以通过这种方式简单地做到这一点,我试过但它不起作用:

    if (document.getElementById("x").value == 2 || 3) {
         //Do somthing
    }
Run Code Online (Sandbox Code Playgroud)

javascript if-statement

0
推荐指数
1
解决办法
131
查看次数