相关疑难解决方法(0)

如何检查数组是否包含JavaScript中的对象?

找出JavaScript数组是否包含对象的最简洁有效的方法是什么?

这是我知道的唯一方法:

function contains(a, obj) {
    for (var i = 0; i < a.length; i++) {
        if (a[i] === obj) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

有没有更好,更简洁的方法来实现这一目标?

这与Stack Overflow问题密切相关问题在JavaScript数组中查找项目的最佳方法是什么?它使用的方法寻找数组中的对象indexOf.

javascript arrays algorithm time-complexity javascript-objects

3778
推荐指数
37
解决办法
241万
查看次数

确定数组是否包含值

我需要确定数组中是否存在值.

我使用以下功能:

Array.prototype.contains = function(obj) {
    var i = this.length;
    while (i--) {
        if (this[i] == obj) {
            return true;
        }
    }
    return false;
}
Run Code Online (Sandbox Code Playgroud)

上面的函数总是返回false.

数组值和函数调用如下:

arrValues = ["Sam","Great", "Sample", "High"]
alert(arrValues.contains("Sam"));
Run Code Online (Sandbox Code Playgroud)

javascript arrays contains

1300
推荐指数
15
解决办法
159万
查看次数

如何在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万
查看次数

检查数组中是否存在项目

我需要检查主数组中是否存在特定值.

例:

var hideFilters = function() {
    var listCategoryId = ['1000014', '1000015', '1000016', '1000017', '1000018', '1000019', '1000021', '1000086'];

    var actualCategoryId = '1000018';

    if (actualCategoryId === listCategoryId) {
        console.log('is equal');
    } else {
        console.log('fuen... fuen...');
    }
};

hideFilters();
Run Code Online (Sandbox Code Playgroud)

javascript arrays jquery

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

javascript - 检查输入是否对应于1个数组值

我有一个数组:

var something = ["1","2","3","4"] ;
Run Code Online (Sandbox Code Playgroud)

我会在提示中要求用户选择一个号码.如果它对应于数组中的任何值,则会触发某些内容.

我的问题是:我如何检查输入是否对应任何数组值?

if(something === "input"){
    console.log("u picked a good number");
} 
Run Code Online (Sandbox Code Playgroud)

当然,如果我现在的语句不正确,但我如何检查数组中的每个值,看看是否有任何对应的?

如果有人可以帮我这个,那真是太棒了!;)

thxx!

javascript arrays if-statement

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

JavaScript:如何将用户输入与数组进行比较?

我一直在尝试为学校项目制作一个非常简单的搜索引擎,但我不知道如何将收到的用户输入(来自输入文本框的字符串)与数组中的数据(NodeList具有一堆名称的对象)。

我将详细说明我想要实现的目标:我有一个 HTML 页面,其中包含一个输入表单和一堆电影标题(格式),我想将用户在输入表单中键入的内容与电影进行比较页面上的标题。如果用户输入与其中一个电影标题匹配,我希望突出显示该电影,如果输入与任何电影不匹配,我只想弹出一个警告框,提示输入与任何电影都不匹配。

我一直在尝试这样做:

var All_Titles = document.getElementsByTagName("h3");
var User_Input = document.forms["search_form"];

function InputValidation() {
    var x = document.forms["search_form"]["input_box"].value;

    if (x == "" || x == null) {
        alert("You haven't entered anything");
    } else {
        Search();
    }
}

function Search() {
    if (User_Input == All_Titles) {
        document.writeln("It worked!");
    } else {
        alert("No matched movies");
    }
}
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我首先在名为“User_Input”的变量中捕获用户输入,并对电影标题执行相同的操作。

然后,我检查用户是否确实在搜索表单中输入了任何文本;如果他们没有这样做,他们会收到一条错误消息,如果他们这样做了,我将运行 Search() 函数,该函数的定义如下。

棘手的部分来了:我真的不知道如何将用户输入与我拥有的 进行比较!我已经用 If 语句进行了尝试,如您所见,但这似乎不起作用。

谁能帮助我解决这个问题?

html javascript arrays

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

检查一个数组中的值是否存在于另一个数组中,并且只在 javascript 中返回匹配项

我有以下

const A = ['test 105', 'test 300']
 const B = [
      { name: 'test 105', id: 1 },
      { name: 'test 300', id: 2 },
      { name: 'test 3', id: 29 },
      { name: 'test 20', id: 20 }
           ]
Run Code Online (Sandbox Code Playgroud)

我需要检查 const B.name 是否等于 const A 中的任何值,并仅返回来自 const B 的匹配项。

所以我需要最后的回报

 const B = [
      { name: 'test 105', id: 1 },
      { name: 'test 300', id: 2 }
           ]
Run Code Online (Sandbox Code Playgroud)

我能够用 1 个元素来做到这一点,但我想检查 const A,因为它将来可能有更多的值

const filtered = parsedResponse.filter(element …
Run Code Online (Sandbox Code Playgroud)

javascript

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