Les*_*aul 10 javascript arrays jquery json
我正在尝试创建一个JavaScript函数,它从外部JSON中的数组中获取信息,然后获取其中一个JSON变量的最大值(或前5个值).对于这个例子,假设我想获得值"ppg"的最大值.这是一个小数组样本:
[
{
"player" : "Andre Drummond",
"team" : "Detroit Pistons",
"ppg" : "15.4",
"rpg" : "11.6",
"apg" : "2.4",
"bpg" : "1.6",
"spg" : "0.8",
"3pg" : "0.1"
},
{
"player" : "Anthony Davis",
"team" : "New Orleans Pelicans",
"ppg" : "16.4",
"rpg" : "13.6",
"apg" : "2.6",
"bpg" : "3.5",
"spg" : "1.2",
"3pg" : "0.1"
},
{
"player" : "Carmelo Anthony",
"team" : "New York Knicks",
"ppg" : "27.4",
"rpg" : "5.4",
"apg" : "4.5",
"bpg" : "1.1",
"spg" : "1.5",
"3pg" : "1.6"
}
]
Run Code Online (Sandbox Code Playgroud)
通过数组获取最大值然后从此值获取值"player"和"team"的最佳方法是什么?该页面将是交互式的,因为我将有一个下拉菜单栏,允许查看者在"玩家"和"团队"之外的六个JSON值中选择一个.提前致谢!
McG*_*gle 17
只需在阵列中循环,并随时跟踪最大值:
function getMax(arr, prop) {
var max;
for (var i=0 ; i<arr.length ; i++) {
if (max == null || parseInt(arr[i][prop]) > parseInt(max[prop]))
max = arr[i];
}
return max;
}
Run Code Online (Sandbox Code Playgroud)
用法如下:
var maxPpg = getMax(arr, "ppg");
console.log(maxPpg.player + " - " + maxPpg.team);
Run Code Online (Sandbox Code Playgroud)
编辑
您还可以使用Javascript "sort"方法获取前n个值:
function getTopN(arr, prop, n) {
// clone before sorting, to preserve the original array
var clone = arr.slice(0);
// sort descending
clone.sort(function(x, y) {
if (x[prop] == y[prop]) return 0;
else if (parseInt(x[prop]) < parseInt(y[prop])) return 1;
else return -1;
});
return clone.slice(0, n || 1);
}
Run Code Online (Sandbox Code Playgroud)
用法:
var topScorers = getTopN(arr, "ppg", 2);
topScorers.forEach(function(item, index) {
console.log("#" + (index+1) + ": " + item.player);
});
Run Code Online (Sandbox Code Playgroud)
我发现以下方法非常简洁:
arr.sort(
function(a, b) {
return parseFloat(b['ppg']) - parseFloat(a['ppg']);
}
)[0]['player']
Run Code Online (Sandbox Code Playgroud)
片段中的演示:
arr.sort(
function(a, b) {
return parseFloat(b['ppg']) - parseFloat(a['ppg']);
}
)[0]['player']
Run Code Online (Sandbox Code Playgroud)
首先,我按降序对数组进行排序,然后选择包含最大值的第一个元素。在代码中,我找到了player谁拥有最大值ppg。希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
37636 次 |
| 最近记录: |