javascript - 如何在数组中搜索

标签 javascript search

我有 JavaScript 数组包含这样的链接:

var urls = ['url1','url2','url3'];
  if (urls.indexOf(window.location.hostname) > -1)
{
  // do something ...
}
else {
  window.location.href = 'redirect url';
}

这段代码运行良好,但我试图将它转换为一个对象数组,如下所示:

var urls = [
  {
    'url':'url1'
  },
  {
    'url':'url2'
  },
  {
    'url':'url3'
  },
];
if (urls.url.indexOf(window.location.hostname) > -1)
{
  // do something ...
}
else {
  window.location.href = 'redirect url';
}

但是这段代码不起作用!!

如何将第一个代码转换为对象数组,或者如何在数组中搜索?

最佳答案

最简单的解决方案是使用 array.some

if(urls.some(function(item) { return item.url == window.location.hostname;})) {
    // do something ...
} else {
    window.location.href = 'redirect url';
}

更具可读性

var found = urls.some(function(item) { 
    return item.url == window.location.hostname;
});
if(found) {
    // do something ...
} else {
    window.location.href = 'redirect url';
}

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

相关文章:

javascript - d3.js:使用新数据集刷新图表

Javascript 帮助函数独立隐藏每个列表项

javascript - 如何在JavaScript中实现类似Eclipse "Open Resource"的搜索

java - 将数组插入到 int 数组的数组列表的正确位置

mysql - 前缀匹配 MySQL 索引 : LIKE word% vs. MATCH 'word*' 用于搜索结果自动完成

javascript - 当创建两个以上的球时, Canvas 中的弹跳球会表现出奇怪的行为

javascript - 正则表达式 : Parse a sentence

sql - 需要根据单词列表在 Teradata SQL 中搜索文本字段并返回该单词

c# - 具有自定义字符映射的 Levenshtein 算法

javascript - 如何禁止 ESLint 将项目添加到 useEffect 的观察者数组中?