Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.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 如何返回c值最大的数组id_Javascript_Arrays_Max - Fatal编程技术网

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,下次看看如何提问