从Javascript中的每列获取最大值?

从Javascript中的每列获取最大值?,javascript,Javascript,我在用Javascript工作。我有一个对象数组。每个物体看起来都像这样 { date: Mon Oct 31 2016 19:00:00 GMT-0500 (Central Daylight Time), Catan: 62588, Dominion: 51915, Codenames: 21263, Terraforming Mars: 2148 } 如何从列2-5中获取最大值的数组???首先映射以从列2-5中获取每个对象的值数组,然后将其减

我在用Javascript工作。我有一个对象数组。每个物体看起来都像这样

{
    date: Mon Oct 31 2016 19:00:00 GMT-0500 (Central Daylight Time), 
    Catan: 62588, 
    Dominion: 51915, 
    Codenames: 21263, 
    Terraforming Mars: 2148
}

如何从列2-5中获取最大值的数组???

首先映射以从列2-5中获取每个对象的值数组,然后将其减少以找到对应列的最大值

const数据=[
{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:62588,
自治领:51915,
代号:21263,
“地形化火星”:2148,
},
{
日期:“2016年10月31日星期一20:00:00 GMT-0500(中央夏令时)”,
卡坦:9561,
自治领:74152,
代号:5123,
“地形化火星”:1078,
},
{
日期:“2016年10月31日星期一21:00:00 GMT-0500(中央夏令时)”,
卡坦:62588,
自治领:84102,
代号:96396,
“地形化火星”:6423,
},
]
常数res=数据
.map((obj)=>Object.values(obj.slice(1,5))
.reduce((acc,el)=>acc.map((max,i)=>Math.max(max,el[i]),[0,0,0,0])

console.log(res)
首先映射以从col2-5中获取每个对象的值数组,然后减少它以找到对应列的最大值

const数据=[
{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:62588,
自治领:51915,
代号:21263,
“地形化火星”:2148,
},
{
日期:“2016年10月31日星期一20:00:00 GMT-0500(中央夏令时)”,
卡坦:9561,
自治领:74152,
代号:5123,
“地形化火星”:1078,
},
{
日期:“2016年10月31日星期一21:00:00 GMT-0500(中央夏令时)”,
卡坦:62588,
自治领:84102,
代号:96396,
“地形化火星”:6423,
},
]
常数res=数据
.map((obj)=>Object.values(obj.slice(1,5))
.reduce((acc,el)=>acc.map((max,i)=>Math.max(max,el[i]),[0,0,0,0])

console.log(res)
要从对象中获取最大值,请尝试以下操作:

let foo = {
    date: "Mon Oct 31 2016 19:00:00 GMT-0500 (Central Daylight Time)", 
    Catan: 62588, 
    Dominion: 51915, 
    Codenames: 21263, 
    "Terraforming Mars": 2148
};
let arr = Object.keys(foo).map(function(key) { return foo[key] });
arr.shift()
let max = Math.max.apply(null, arr);
console.log(max); // prints 62588
注意,我必须对您最初发布的对象进行一些更改,因为它不是有效的javascript


要从对象中获取最大值,请尝试以下操作:

let foo = {
    date: "Mon Oct 31 2016 19:00:00 GMT-0500 (Central Daylight Time)", 
    Catan: 62588, 
    Dominion: 51915, 
    Codenames: 21263, 
    "Terraforming Mars": 2148
};
let arr = Object.keys(foo).map(function(key) { return foo[key] });
arr.shift()
let max = Math.max.apply(null, arr);
console.log(max); // prints 62588
注意,我必须对您最初发布的对象进行一些更改,因为它不是有效的javascript


我不能100%确定我是否理解该要求,但是如果您要在数组中保存的对象之间寻找最大值,类似的方法可能会奏效

让数据数组=[
{ID:“object1”,第一个值:7,第二个值:1},
{ID:“object2”,第一个值:3,第二个值:10}
]
设maxFirstValue=0;
设maxSecondValue=0;
for(设i=0;imaxFirstValue){maxFirstValue=dataArray[i].firstValue}
如果(dataArray[i].secondValue>maxSecondValue){maxSecondValue=dataArray[i].secondValue}
}
让resultsObject={firstValue:maxFirstValue,secondValue:maxSecondValue}

console.log(resultsObject)不是100%确定我理解这个要求,但是如果您要在数组中保存的对象之间寻找最大值,类似这样的方法可能会奏效

让数据数组=[
{ID:“object1”,第一个值:7,第二个值:1},
{ID:“object2”,第一个值:3,第二个值:10}
]
设maxFirstValue=0;
设maxSecondValue=0;
for(设i=0;imaxFirstValue){maxFirstValue=dataArray[i].firstValue}
如果(dataArray[i].secondValue>maxSecondValue){maxSecondValue=dataArray[i].secondValue}
}
让resultsObject={firstValue:maxFirstValue,secondValue:maxSecondValue}
console.log(resultsObject)
让foo=[{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:0,
自治领:1,
代号:2,,
“地球化火星”:3
},
{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:3,
自治领:2,
代号:1,,
“地形化火星”:0
}
];
foo=foo.map(列=>{
让keys=Object.keys(列);
设max=-1;
让targetKey='';
keys.forEach((keyName,index)=>{
如果(索引>0){
如果(列[keyName]>max){
max=列[keyName];
targetKey=keyName;
}
}
})
返回{value:max,key:targetKey}
});
console.log(“foo”,foo)
让foo=[{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:0,
自治领:1,
代号:2,,
“地球化火星”:3
},
{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:3,
自治领:2,
代号:1,,
“地形化火星”:0
}
];
foo=foo.map(列=>{
让keys=Object.keys(列);
设max=-1;
让targetKey='';
keys.forEach((keyName,index)=>{
如果(索引>0){
如果(列[keyName]>max){
max=列[keyName];
targetKey=keyName;
}
}
})
返回{value:max,key:targetKey}
});
console.log(“foo”,foo)
函数getColumns(对象){
//栏目:
常量列=[];
const keys=Object.keys(Object[Object.keys(Object)[0]]);
keys.forEach(key=>columns.push([]);
/*keys.shift();//因为您不想要“日期”*/
设i=0;//在“列”数组之间移动
for(对象中的id){
keys.forEach(key=>{
log(i,key,object[id][key]);
列[i].push(对象[id][key]);
i++;
})
console.log(“--------------”;
i=0;
}
返回列;
}
函数MathMaxes(数组){
//是Math.max(…列)的私有函数;
返回结果;
}
//测试对象
常数数据={
1:{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:23432,
自治领:2233,
代号:111,
“地形化火星”:2344
},
2:{
日期:“2016年10月31日星期一19:00:00 GMT-0500(中央夏令时)”,
卡坦:1123,
自治领:353,
代号:54645,