问一个用JS对数组进行排序取值的问题,菜鸟学习中...
发布网友
发布时间:2022-05-11 04:12
我来回答
共3个回答
热心网友
时间:2022-04-20 09:21
理解是理解啊。
先说说普通做法吧,遍历二维数组。,取出最大一个,并把这个元素移除,再遍历取最大。
将以上2个元素组成一个新的数组就可以了。
另一种是给obj1数组排序,排序的规则自己定义,然后最数组的后2个元素就可以了。
你写第一个吧,第二个你可能不了解。
热心网友
时间:2022-04-20 10:39
var oldArr =[["A",2],["G",1],["J",9],["D",4]];
function getArr(arr){
arr.sort(function(arr1, arr2){//数组按第二个元素大小重新从大到小排序
return arr2[1] - arr1[1];
})
return arr.slice(0,2);//取从大到小的前面两个元素,返回组成新的数组
}
console.log(getArr(oldArr));
热心网友
时间:2022-04-20 12:14
var obj1 = [['A',2],['B',3]];
var obj2 = [];
var max1 = false;
var max2 = false;
for(var i = 0; i < obj1.length; i ++) {
var item = obj1[i];
if (false === max1) {
max1 = item;
} else {
if (item[1] > max1[1]) {
max2 = max1;
max1 = item;
} else {
if (false === max2) {
max2 = item;
} else if (item[1] > max2[1]) {
max2 = item;
}
}
}
}
//obj2是你要的结果了