javascript - Javascript - 如何有效地搜索数组中的对象

标签 javascript arrays search case-insensitive

<分区>

我需要在一个大数组中找到一个对象(准确地说是一个字符串)。虽然下面的代码有效,但它会乏味地滚动数组的每个元素,这是一种粗暴的方法。有没有更有效的方法?可能调用 .search 或 .match 或等效的?另外如何使搜索对象(字符串)不区分大小写?即对象可能是“abc”而数组元素是“ABC”。

提前致谢

function SearchArray(array, object){ //need to modify code to become case insensitive.
  for (var i= 1; i< array.length; i++){
    if (array[i] == object.toString()){ 
        return i; 
      } 
  }
  return 0;
}

我还忘了说,搜索返回的是匹配对象在一维数组中的索引/位置,而不是简单的真/假。

最佳答案

下面的函数就是这样做的:

function findWord(array, word) {
    return -1 < array.map(function(item) { return item.toLowerCase(); }).indexOf(word.toLowerCase());
}

它的作用是:

  • 使用 map() 函数将每个字符串转换为小写。
  • 也在小写模式下搜索某个单词。
  • 如果找到单词,函数返回一个大于 -1 的值,因此返回值为 truefalse

关于javascript - Javascript - 如何有效地搜索数组中的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17091138/

相关文章:

javascript - 如何通过循环使用vuex中的img src

Java 快速创建具有一组可能性的数组的方法

javascript - 搜索框结果点击并呈现 html 页面

android - 如何禁用 GoogleWebLight?

javascript - 将表单中的每个输入替换为其 value 属性

javascript - 无法确定为什么canvas drawImage无法处理PNG图像

iphone - 无法在 iOS 中将字节数组发布到 Web 服务 (REST)

javascript - 将 JavaScript 多维数组转换为 Java 数组

php - 在 MySQL 和 PHP 中返回找到值的行的 id

javascript - 将 javascript 数组插入到另一个数组中