Javascript 如何根据第二个子数组值获取最大数组元素
我有一个JavaScript数组:Javascript 如何根据第二个子数组值获取最大数组元素,javascript,arrays,d3.js,d3,Javascript,Arrays,D3.js,D3,我有一个JavaScript数组: [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]] 如何根据子数组中第二个元素的值获取最大元素 在上述情况下,我希望获得元素: [-782, 5] 因为5是所有子数组中最大的第二个
[[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]]
如何根据子数组中第二个元素的值获取最大元素
在上述情况下,我希望获得元素:
[-782, 5]
因为5是所有子数组中最大的第二个值。
如果有多个子数组具有较大的第二个值,我希望得到第一个
Mariuszvar数组=[[-786,2]、-783,1]、-782,5]、-781,1]、-779,2]、-778,1]、-775,1]、-774,1]、-773,1]、-771,2]、-769,1]、-767,1]、-766,1]、-763,2]、-760,2];
var array = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]];
var maxElementIndex = 0;
for (var i = 0; i < array.length; i++) {
if (array[i][1] > array[maxElementIndex][1]) {
maxElementIndex = i;
}
}
console.log(array[maxElementIndex]);
var maxElementIndex=0;
对于(var i=0;i数组[maxElementIndex][1]){
maxElementIndex=i;
}
}
log(数组[maxElementIndex]);
根据数组中每个元素的第二个元素执行降序排序
var array = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]];
array.sort(function(a, b) {
return b[1] - a[1];
});
console.log(array[0]);
请注意,虽然此解决方案非常简洁,但仅用于查找最大或最小元素的sort要比在单个迭代中查找最大/最小元素的for
循环慢得多。因为这是标记的,所以您也可以从模块中使用(强调我的):
var target = [[-786, 2], [-783, 1], [-782, 5], [-781, 1], [-779, 2], [-778, 1], [-775, 1], [-774, 1], [-773, 1], [-771, 2], [-769, 1], [-767, 1], [-766, 1], [-763, 2], [-760, 2]]
var max = 0, tmp = 0;
var max_entry, tmp_entry;
while (target.length > 0){
tmp_entry = target.pop();
tmp = tmp_entry[1];
if (tmp > max){
max = tmp;
max_entry = tmp_entry;
}
}
alert(max_entry);
根据指定的比较器或访问器返回指定iterable的最大元素
通过提供一个访问器函数,返回每个元素数组中的第二个元素d3。grest()
将返回与所有第二个元素相比具有最大值的元素。
const data=[[-786,2]、-783,1]、-782,5]、-781,1]、-779,2]、-778,1]、-775,1]、-774,1]、-773,1]、-771,2]、-769,1]、-767,1]、-766,1]、-763,2]、-760,2];
常数最大=d3.最大(数据,d=>d[1]);
console.log(最大)代码>
你检查过这个答案了吗?在面试中,不允许您使用sort,也强烈建议您不要使用sort,因为它非常慢。