0

我有这两个数组。

url = ["http://www.linkedin.com/in/jannuelanarna", "http://www.linkedin.com/in/jannuela", undefined, undefined];

publicUrl = ["http://www.linkedin.com/in/jannuelanarna", "http://www.linkedin.com/pub/jay-r-bautista/64/b29/45b", undefined, "http://www.linkedin.com/pub/ronilo-canson/75/927/4a3", "http://www.linkedin.com/pub/siddharth-chaudhary/33/aa1/8", "http://www.linkedin.com/in/rojohnh", "http://www.linkedin.com/pub/lara-martinez/74/777/a3b", "http://www.linkedin.com/pub/alena-ortega/69/72a/415", "http://www.linkedin.com/in/nivlek1416", "http://www.linkedin.com/pub/emmar-reveriza/59/a91/132", "http://www.linkedin.com/in/samsanchezcb", "http://www.linkedin.com/pub/mitch-stevens/6b/375/3a0", "http://www.linkedin.com/pub/irish-jane-sumadic/29/339/910", "http://www.linkedin.com/pub/joel-sumadic/45/31b/ab3", "http://www.linkedin.com/pub/luna-cielo-yniesta/68/4b2/690"];

什么是代码,以便我可以搜索数组中是否存在 url?

4

2 回答 2

2

新演示:(单击此处)单击“在右上角使用 JS 运行。

function arraysHaveDuplicate(needle, arr1, arr2) {
  //will return first duplicate or false
  for (var i=0; i<arr1.length; ++i) {
    if (arr2.indexOf(needle) !== -1) { //found match, return matched value
       return arr1[i];
    }
  }
  return false; //no match
}

--旧答案-- 上面的新答案!!!

这是您可以做到的一种方法。

var value = "http://www.linkedin.com/pub/luna-cielo-yniesta/68/4b2/690";
if (url.indexOf(value) !== -1 || publicUrl.indexOf(value) !== -1) {
  alert('Found: '+value); 
}
else {
  alert('Not found: '+value); 
}

此外,您可以将其变成一个更可重用的函数,如下所示:

function testArrays(needle, arrays) {
  for (var i=0; i<arrays.length; ++i) {
    if (arrays[i].indexOf(needle) !== -1) {
      return true;
    }
  }
  return false;
}

if (testArrays(value, [url, publicUrl])) {
  alert('Found: '+value);  
}
else {
  alert('Not found: '+value); 
}

看我的演示(点击这里)。您可能需要单击角落中的“使用 JS 运行”,以便它发出警报。

于 2013-09-09T21:43:37.490 回答
2

试试这个:(编辑:忽略未定义的重复)

var found=false;
for(var i=0;i<url.length;i++)
{
    if(url!==undefined && publicUrl.indexOf(url[i])!=-1)
    {
        alert('Found: ' + url[i]);
        found=true;
    }
}
if(found)
{
    alert('Found');
}
else
{
    alert('Not found');
}

array.indexOf(value)返回值在数组中的位置,如果值不在数组中,则返回 -1。

于 2013-09-09T22:02:25.483 回答