Javascript 检查对象中的重复项

Javascript 检查对象中的重复项,javascript,Javascript,我有一个这样的结构,我想检查数组中是否有重复的URL,这样我就可以针对这些URL,并根据关键字属性生成一些条件语句。先谢谢你 { "prochat": [{ "Title": "Multiple KB Page", "Message": "Hi, Multiple KB Page?", "ProblemDescription": "Multiple KB Page", "Keyword": "",

我有一个这样的结构,我想检查数组中是否有重复的URL,这样我就可以针对这些URL,并根据关键字属性生成一些条件语句。先谢谢你

{
   "prochat": [{
          "Title": "Multiple KB Page",
          "Message": "Hi, Multiple KB Page?",
          "ProblemDescription": "Multiple KB Page",
          "Keyword": "",
          "Template": 1,
          "URL": "www.abcd.com"
        },  
       {
        "Title": "URL 1",
        "Message": "Do you want to Renew?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Renewals",
        "Template": 1,
        "URL": "www.nba.com"
     },

    {
        "Title": "URL 1",
        "Message": "Do you want to Install?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Installings",
        "Template": 1,
        "URL": "www.nba.com"
    }
  ]
}

我有这样一个条件陈述

if(window.location.href.indexOf(data.prochat[i].URL)>-1){//logic here}


基本上我需要匹配url,如果匹配,我会显示一个按钮。但是,也有一些重复的url,因此我希望如果有重复的url,如果它具有相同的url,我将仅依赖关键字属性。

迭代数据,如果url是新的,只需将其添加到新数组中即可。如果它已经在里面了,你可以随心所欲地处理它,因为它是重复的

您可以尝试以下代码:

var myJSON = {
   "prochat": [{
          "Title": "Multiple KB Page",
          "Message": "Hi, Multiple KB Page?",
          "ProblemDescription": "Multiple KB Page",
          "Keyword": "",
          "Template": 1,
          "URL": "www.abcd.com"
        },  
       {
        "Title": "URL 1",
        "Message": "Do you want to Renew?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Renewals",
        "Template": 1,
        "URL": "www.nba.com"
     },

    {
        "Title": "URL 1",
        "Message": "Do you want to Install?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Installings",
        "Template": 1,
        "URL": "www.nba.com"
    }
  ]
};

    var duplicateURLs = [];
    for(var key in myJSON.prochat){
        if(myJSON.prochat.hasOwnProperty(key)){
        if(duplicateURLs.indexOf(myJSON.prochat[key].URL) > 0){
            // URL is duplicate, do stuff
        }
        else{
            duplicateURLs.push(myJSON.prochat[key].URL);
        }
      }
    }
您可以在线试用。

var newarray=[];
变量对象={
“prochat”:[{
“标题”:“多KB页面”,
“消息”:“您好,多KB页?”,
“问题描述”:“多KB页面”,
“关键字”:“,
“模板”:1,
“URL”:“www.abcd.com”
},  
{
“标题”:“URL 1”,
“消息”:“是否要续订?”,
“ProblemDescription”:“关于安装的消息”,
“关键字”:“续订”,
“模板”:1,
“URL”:“www.nba.com”
},
{
“标题”:“URL 1”,
“消息”:“是否要安装?”,
“ProblemDescription”:“关于安装的消息”,
“关键字”:“分期付款”,
“模板”:1,
“URL”:“www.nba.com”
}
]
}
log(object.prochat.length);

对于(var i=0;iI),如果(window.location.href.indexOf(data.prochat[i].URL)>-1){//logic here},则有如下条件语句基本上,我需要匹配url,如果它匹配,我将显示一个按钮。但是也有一些重复的url,所以我希望如果有重复的url,如果它有相同的url,我将只依赖关键字属性。
var newarray=[];
var object={
   "prochat": [{
          "Title": "Multiple KB Page",
          "Message": "Hi, Multiple KB Page?",
          "ProblemDescription": "Multiple KB Page",
          "Keyword": "",
          "Template": 1,
          "URL": "www.abcd.com"
        },  
       {
        "Title": "URL 1",
        "Message": "Do you want to Renew?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Renewals",
        "Template": 1,
        "URL": "www.nba.com"
     },

    {
        "Title": "URL 1",
        "Message": "Do you want to Install?",
        "ProblemDescription": "Message about Installing",
        "Keyword": "Installings",
        "Template": 1,
        "URL": "www.nba.com"
    }
  ]
}
console.log(object.prochat.length);
for(var i=0;i<object.prochat.length;i++){
    for(var j=i+1;j<object.prochat.length;j++){
    if(object.prochat[i].URL==object.prochat[j].URL){
    console.log("url matches"+i+j);
    newarray.push(object.projact[i].URL);
  }
}