Javascript数组按键获取最大值
我所期望的是得到“A”的最大值和“B”的最大值。可能有一些类似下划线的框架和解决方案,我只需在数组上循环一次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
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 }