jquery从值数组中分配对象键和值

时间:2013-12-26 10:30:30

标签: jquery arrays url object comparison

好吧所以即时构建产品页面,页面有动态链接创建,我需要帮助链接,我通过jquery追加创建页面上的每个元素,因此我无法创建与PHP的链接。所以我试图弄清楚jquery对象和javascript数组之间的差异。我试图抓住网址数据: ?x=wmen&plist=1&s=tops&c=shirts并针对它检查新数据,例如:s=tops&jackets所以我将网址中的所有内容分解为['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}

1 个答案:

答案 0 :(得分:0)

好吧,我想通过@Arun Pjohny的一些帮助解决了答案是隐藏在对象“键”里面你不能锁定数组键,因为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);
    }