87,901
社区成员
发帖
与我相关
我的任务
分享
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/>');
}