>好的,所以我构建了一个产品页面,并且该页面具有动态链接创建,我需要帮助链接,IM通过jQuery append创建页面上的每个元素,因此我无法使用PHP创建链接。 所以我坚持试图找出jQuery对象和JavaScript数组之间的差异。 IM 试图获取网址数据: ?x=wmen&plist=1&s=tops&c=shirts
并根据它检查新数据,例如: s=tops&jackets
所以我将 url 中的所有内容分解为小数组,例如 ['x','wmen'] ,['plist','1'] ...
然后对新数据做了同样的事情['s','tops'] ,['c','shirts'] ...
现在我需要比较两者以防止重复,并且它们的存储顺序就像它们被压缩一样: ?x=wmen&plist=1&s=tops&c=shirts
放置在 href 中。
function correctUrl(x){
var urlArray = location.search.replace('?', '').split('&').map(function(val){ return val.split('='); }), newur = [],newurl = {},z=0,arr = 'array';
// push url array into new array
$.each(urlArray,function(){
newur.push(this);
});
// make array of value
for (var key in link) {
var array = arr + z;
array = [];
// index at 0
array.push(key);
// value 1
array.push(link[key]);
z++;
newur.push(array);
}
for (var i in newur) {
console.log(newur[i]);
$.each(newur[i], function(i, el){
});
}
console.log(newurl);
return x;
}
现在问题是我在分配键和值对时遇到问题。 我想使第一个值成为键,第二个值成为值,例如: ['s','tops'] -> {s:tops}
多亏了 Pjohny @Arun的一些帮助,我想通了,答案是隐藏在对象"键"中,你不能瞄准数组键,因为 JavaScript 没有关联数组,但 jQuery 有对象,这些对象有键,在 for 循环的帮助下,您可以迭代这些对象并获取键和值对,通过重写对象键和值对,您将删除重复项!!!!
function correctUrl(link){
var urlArray = location.search.replace('?', '').split('&').map(function(val){ return val.split('='); }), newur = [],newurl = {},z=0,arr = 'array',x='?';
// push url array into new array
for (var i in urlArray){
$.each(urlArray[i],function(i,el){
newurl[urlArray[i][0]]/* key */ = urlArray[i][1] ; // value
});
}
// make array of value
for (var key in link) {
var array = arr + z;
array = [];
// index at 0
array.push(key);
// value 1
array.push(link[key]);
z++;
newur.push(array);
}
for (var i in newur) {
$.each(newur[i], function(i, el){
newurl[newur[i][0]]/* key */ = newur[i][1] ; // value
});
}
for (var i in newurl){
x += i+'='+newurl[i]+'&';
}
return x.slice(0, - 1);
}