Javascript 如何返回c值最大的数组id
如何返回Javascript 如何返回c值最大的数组id,javascript,arrays,max,Javascript,Arrays,Max,如何返回c值为max的id。它应该返回id 1,因为它的c值为max var array = [{"id":1,"c":5,"f":8},{"id":2,"c":3,"f":9},{"id":3,"c":4,"f":3}]; 根据c值排序,然后选择第一个索引 var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:4,“f”:3}, max=array.sort((a,b)=>b.c>a.c)[0]; 控制台日志(最大值)您可
c
值为max的id。它应该返回id 1,因为它的c
值为max
var array = [{"id":1,"c":5,"f":8},{"id":2,"c":3,"f":9},{"id":3,"c":4,"f":3}];
根据
c
值排序,然后选择第一个索引
var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:4,“f”:3},
max=array.sort((a,b)=>b.c>a.c)[0];
控制台日志(最大值)代码>您可以尝试以下操作
var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:3,“f”:3}];
var obj={};
array.forEach((项)=>{
obj=!obj.id?item:(obj.c>item.c?obj:item);
});
console.log(obj);//给予对象
console.log(对象id);//给出id
首先查找最大值
var maxC = Math.max.apply(null, array.map( s => s.c ));
现在找到maxC
var idWithMaxC = array.find( s => s.c === maxC ).id
演示
var数组=[{
“id”:1,
“c”:5,
“f”:8
}, {
“id”:2,
“c”:3,
“f”:9
}, {
“id”:3,
“c”:4,
“f”:3
}];
var maxC=Math.max.apply(null,array.map(s=>s.c));
var idWithMaxC=array.find(s=>s.c==maxC).id
console.log(idWithMaxC)代码>如果您不想要lambda函数,这应该是非常描述性的
function getMaxId ( array ) {
var max_index = 0;
var max = 0;
for ( var i = 0; i < array.length; i++ ) {
if( array[ i ].c > max ) {
max = array[ i ].c;
max_index = i;
}
}
return array[ max_index ].id
}
函数getMaxId(数组){
var max_指数=0;
var max=0;
对于(var i=0;imax){
max=数组[i].c;
最大指数=i;
}
}
返回数组[max\u index].id
}
您可以通过在单个循环中检查对象的属性来减少对象
var数组=[{id:1,c:5,f:8},{id:2,c:3,f:9},{id:3,c:4,f:3}],
maxC=array.reduce((a,b)=>a.c>b.c?a:b);
console.log(maxC);
console.log(maxC.id)代码>看看lodash
var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:4,“f”:3}];
log(u.maxBy(数组,'c'))代码>
在此类问题中,JavaScript数组方法(map、filter、reduce)非常有用
var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:4,“f”:3}];
让max=Math.max.apply(null,array.map(el=>el.c));
设ID=array.filter(el=>el.c==5)[0].ID;
console.log(ID)
您可以使用array.sort((a,b)=>b.c>a.c)[0].id代码>(扩展现有答案以满足OP的要求)
var数组=[{“id”:1,“c”:5,“f”:8},{“id”:2,“c”:3,“f”:9},{“id”:3,“c”:4,“f”:3},
maxCId=array.sort((a,b)=>b.c>a.c)[0].id;
console.log(maxCId)
到目前为止您尝试了什么。@JasbirRana,您可以通过max.id
获得id这是所有解决方案中最理想的解决方案。它只使用一个循环,并返回所需的内容。非常感谢nina,我还想问一件事,我们能得到最大的所有id吗?例如var数组=[{id:1,c:5,f:8},{id:2,c:3,f:9},{id:3,c:5,f:3}]它应该得到id 1和id 3 bcoz都是最大值我不想使用lodash.js然后看看其他任何答案@JasbirRana,下次看看如何提问