Как получить минимальное и максимальное значение из объекта где несколько уровней?
let obj = {
list: {
0: {time: 1619027127267},
1: {time: 1619027159803},
2: {time: 1619027172804}
}
};
console.log( Math.min(...obj.list) );
console.log( Math.max(...obj.list) );
Нужно получить минимальное и максимальное значение ключа time
Ответы (3 шт):
Автор решения: Pavel Grishaev
→ Ссылка
let obj = {
list: {
0: {time: 1619027127267},
1: {time: 1619027159803},
2: {time: 1619027172804}
}
};
let min = Infinity,
max = -Infinity;
for( key in obj.list ){
min = Math.min( min, obj.list[key].time );
max = Math.max( max, obj.list[key].time );
}
console.log( 'min:', min );
console.log( 'max:', max );
Автор решения: Squeli47
→ Ссылка
let obj = {
list: {
0: {time: 1619027127267},
1: {time: 1619027159803},
2: {time: 1619027172804}
}
};
let min = Object.values(obj.list).reduce((p, c) => (p.time > c.time) ? c : p);
let max = Object.values(obj.list).reduce((p, c) => (p.time < c.time) ? c : p);
console.log( min.time );
console.log( max.time );
Автор решения: Armen
→ Ссылка
const arr = Object.values(obj.list)
arr.sort((a,b) => a.time - b.time)
console.log(arr[0])//min
console.log(arr[arr.length - 1])//max