Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/421.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript数组按键获取最大值_Javascript_Arrays_Sorting - Fatal编程技术网

Javascript数组按键获取最大值

Javascript数组按键获取最大值,javascript,arrays,sorting,Javascript,Arrays,Sorting,我所期望的是得到“A”的最大值和“B”的最大值。可能有一些类似下划线的框架和解决方案,我只需在数组上循环一次 var myarr = new Array(); myarr[0] = {key: 'A', value:900}; myarr[1] = {key: 'B', value:190}; myarr[2] = {key: 'B', value:160}; myarr[3] = {key: 'A', value:10}; var max={} ,当前,i 对于(i=0;imax[curre

我所期望的是得到“A”的最大值和“B”的最大值。

可能有一些类似下划线的框架和解决方案,我只需在数组上循环一次

var myarr = new Array();
myarr[0] = {key: 'A', value:900};
myarr[1] = {key: 'B', value:190};
myarr[2] = {key: 'B', value:160};
myarr[3] = {key: 'A', value:10};
var max={}
,当前,i
对于(i=0;imax[current.key]){
最大值[当前键]=当前值;
}
}
console.log(最大值)

我还没有测试过它,但它应该会给你一个想法

使用
Array.reduce
(请参阅)

var myarr=[{key:'A',value:900},
{键:'B',值:190},
{键:'B',值:160},
{键:'A',值:10}
];
var max=myarr.reduce(函数(a,b){返回b.value>a?b:a;});
document.querySelector(“#result”).textContent=
'最大值为myarr=>;'的对象'+
stringify(max)+'(值:'+max.value++')
单向

var max = {}
  , current, i
for(i = 0; i < myarr.length;i++) {
  current = myarr[i];
  // initial value
  if(max[current.key] === undefined) {
    max[current.key] = current.value
  }
  // check if value is higher
  if(current.value > max[current.key]) {
    max[current.key] = current.value;
  }
}
console.log(max)
var-maxes={};
对于(变量i=0;i
var maxNumbers={};
var myarr=[
{键:'A',值:110},
{键:'B',值:190},
{键:'B',值:160},
{键:'B',值:890},
{键:'A',值:80}
];
对于(变量i=0;i
var maxes = {};
for (var i = 0; i < myarr.length; i++)
{
    var item = maxes[myarr[i].key];
    maxes[myarr[i].key] = isNaN(item) ? myarr[i].value : Math.max(item, myarr[i].value);
}

for (var key in maxes)
    alert(key + " max = " + maxes[key]);
var maxNumbers = {};
var myarr = [
    {key: 'A', value:110},
    {key: 'B', value:190},
    {key: 'B', value:160},
    {key: 'B', value:890},
    {key: 'A', value:80}   
];

for(var i = 0; i < myarr.length; i++) {
    maxNumbers[myarr[i].key] = maxNumbers[myarr[i].key] || myarr[i].value;
    if (maxNumbers[myarr[i].key] < myarr[i].value) {
        maxNumbers[myarr[i].key] = myarr[i].value
    }
}
console.log(maxNumbers) //{ A: 110, B: 890 }