Javascript 检查对象在不同对象中是否包含相同键的任何值
很抱歉丢失了邮件。问题陈述 我有这个网址- 我必须提取对象中的所有查询参数,比如键值对 然后从不同的对象检查这些具有相同键的查询参数中是否有任何匹配值 这是我的解决方案,我不熟悉java脚本,所以我想确认这是否是正确的方法。 到目前为止,解决方案适用于所有情况。只要让我知道,如果性能可以提高或任何更好的方式 解决方案的小提琴链接- 代码 请注意-url可能会根据浏览器url而变化Javascript 检查对象在不同对象中是否包含相同键的任何值,javascript,node.js,Javascript,Node.js,很抱歉丢失了邮件。问题陈述 我有这个网址- 我必须提取对象中的所有查询参数,比如键值对 然后从不同的对象检查这些具有相同键的查询参数中是否有任何匹配值 这是我的解决方案,我不熟悉java脚本,所以我想确认这是否是正确的方法。 到目前为止,解决方案适用于所有情况。只要让我知道,如果性能可以提高或任何更好的方式 解决方案的小提琴链接- 代码 请注意-url可能会根据浏览器url而变化 提前感谢,我想为这个问题获得最好的性能。你有什么问题?脚本输出“Matches”“Matches”我现在正在控制台
提前感谢,我想为这个问题获得最好的性能。你有什么问题?脚本输出
“Matches”“Matches”
我现在正在控制台记录它。我想检查我写的方法是否正确解决了这个问题,并检查@Halcyon的性能。这是否适用于具有任何类型查询参数的任何url
var callingUrl = "http://www.letstango.com/mobiles-tablets/mobiles/apple?q=&idx=letsTango_default_products&fsrc=sort_price,brand&p=0&hFR%5Bcategories.level0%5D%5B0%5D=Mobiles%20%26%20Tablets%20%2F%2F%2F%20Mobiles%20%2F%2F%2F%20LG&nR%5Bprice.AED.default%5D%5B%3C%3D%5D%5B0%5D=2560&nR%5Bprice.AED.default%5D%5B%3E%3D%5D%5B0%5D=1138&is_v=1";
if (callingUrl) {
var queryParam = {};
var split = callingUrl.split("?");
if (split.length > 1) {
var query = split[1].split("&");
if (query.length > 1) {
_.each(query, function(q) {
var key = decodeURIComponent(q.split("=")[0]);
var value = decodeURIComponent(q.split("=")[1]);
if (value.indexOf(",") !== -1) {
value = value.split(",");
}
queryParam[key] = value;
})
}
}
}
if (!_.isEmpty(queryParam)) {
var value = {
"fsrc": ["brand"]
};
for (var key in value) {
if (value.hasOwnProperty(key)) {
for (var k in queryParam) {
if (queryParam.hasOwnProperty(k)) {
if (k === key) {
var index = _.intersection(value[key], queryParam[k]);
if (index.length > 0) {
console.log("Matches");
} else {
console.log("fails");
}
}
}
}
}
}