对索引上的多维数组进行排序
Sort Multi Dimensional Array on Index?
我需要找到类的位置。我有以下多维数组:
var myData = {
0 : {
stdid : 1,
marks : 98,
pos : ,
},
1 : {
stdid : 2,
marks : 90,
pos : ,
},
2 : {
stdid : 3,
marks : 77
pos : ,
},
3 : {
stdid : 4,
marks : 98,
pos : ,
},
4 : {
stdid : 5,
marks : 66,
pos : ,
},
}
我需要这个数组来填充每个索引的位置,如下所示
var myPositionData = {
0 : {
stdid : 1,
marks : 98,
pos : 1,
},
1 : {
stdid : 2,
marks : 90,
pos : 2,
},
2 : {
stdid : 3,
marks : 77
pos : 3,
},
3 : {
stdid : 4,
marks : 98,
pos : 1,
},
4 : {
stdid : 5,
marks : 66,
pos : 4,
},
}
我想做的是计算阶级的位置。
这里非常简单的解决方案。只需迭代数组并直接添加位置键即可。
for(var key in myData) {
if(myData.hasOwnProperty(key)) {
myData[key].pos = key+1;
}
}
你那里有一个对象而不是数组。如果你想使用一个数组,看看这个
var myPositionData = [{
stdid: 1,
marks: 98,
}, {
stdid: 2,
marks: 90,
}, {
stdid: 3,
marks: 77,
}, {
stdid: 4,
marks: 98,
}, {
stdid: 5,
marks: 66,
}]
function compare(a, b) {
if (a.marks < b.marks) return 1;
if (a.marks > b.marks) return -1;
return 0;
}
myPositionData.sort(compare);
var currentPositions = 1;
for (var i = 0; i < myPositionData.length; i++) {
myPositionData[i].pos = currentPositions;
if (!(i < myPositionData.length - 2 && compare(myPositionData[i], myPositionData[i + 1]) == 0)) {
currentPositions++;
}
}
console.log(myPositionData)
$total = count($myData);
for($a=0; $a<$total;$a++)
{
$myData[$a]['pos'] = $a+1;
}
相关文章:
- JavaScript数组排序(函数)用于对表行进行排序,而不是排序
- Javascript中的多维数组排序索引问题
- 如何按日期对Javascript对象数组排序
- 数组排序后显示更改
- 当许多元素相等时,Javascript数组排序无法正常工作
- Javascript数组排序速度受字符串长度的影响
- 按唯一键将对象数组排序为数组
- 以 js 为单位的数组排序
- js 数组排序无法正常工作
- 数组排序.论点从何而来
- 不需要的数组排序
- 数组排序不正确/不可预测,使用 indexOf 时
- Javascript将数组排序到树中
- 随后的多维数组排序会产生意外的结果
- 数组排序基于纯javascript搜索文本匹配
- Javascript自定义数组按数组排序
- 使用字符串按属性错误对对象进行数组排序
- 多维数组排序
- JavaScript与PHP在数组排序中的对比
- Javascript-关联数组排序