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