在一个Array里面有N个div对象
div对象的zindex是不连续的 
例如:2.6.3.10.7.8.12.5.5
现在要求处理后的div的zindex是连续的
例如:1.4,2, 7,5,6, 8,3,3

解决方案 »

  1.   

    1.4,2, 7,5,6, 8,3,3??没看懂这是什么顺序意思是升序或者降序么?给个类似的,升序
    var arr = [{index:10},{index:1},{index:3},{index:2},{index:7},{index:5},{index:8}];

    arr.sort(function(a, b){
    return a.index - b.index;
    })
      

  2.   


    按大小排序的 不是按顺序
    之前的zindex如果是最大的话 修改后还应该是最大
    不能改变之前zindex的大小顺序
      

  3.   


    var arr = [{zindex:2}, {zindex:6}, {zindex:3}, {zindex:10}, {zindex:7}, {zindex:8}, {zindex:12}, {zindex:5}, {zindex:5}];temp = [];
    var index;
    for(var i = 0; i < arr.length; i++) { //创建一个map
    index = arr[i].zindex; //将zindex作为map的指针
    temp[index]? temp[index].push(i) : temp[index] = [index, i]; //将相同zindex的项在数组中的下标存在一起
    }
    index = 1;
    var len = arr.length;
    var j = 0;
    while(index < len) {//循环读取map
    if(temp[j]) {
    for(var k = 1; k < temp[j].length; k++) { //循环读取当前zindex所对应的数组项的下标
    arr[temp[j][k]].zindex = index; 
    }
    index++;
    }
    j++;
    }//显示结果
    for(each in arr) {
    document.write(arr[each].zindex + '<br/>');
    }