Хорошо, я предполагаю, что у вас есть несколько записей, подобных той, что вы дали в качестве примера, и все они находятся в массиве. Так что это будет что-то вроде:
var data = [
{"session": {"checkpoints": [
{"status": "started", "position": 0, "createdAt": "2020-02-
20T16:55:37.795Z"},
{"status": "paused", "position": 195, "createdAt": "2020-02-
20T16:58:53.917Z"},
{"status": "stopped", "position": 195, "createdAt": "2020-02-
20T17:01:04.230Z"},
{"status": "closed", "position": 195, "createdAt": "2020-02-
20T17:01:04.250Z"}], "totalTime": 195}},
{"session": {"checkpoints": [
{"status": "started", "position": 0, "createdAt": "2020-02-
20T16:55:37.795Z"},
{"status": "paused", "position": 195, "createdAt": "2020-02-
20T16:58:53.917Z"},
{"status": "stopped", "position": 195, "createdAt": "2020-02-
20T17:01:04.230Z"},
{"status": "closed", "position": 195, "createdAt": "2020-02-
20T17:01:04.250Z"}], "totalTime": 195}},
{"session": {"checkpoints": [
{"status": "started", "position": 0, "createdAt": "2020-02-
20T16:55:37.795Z"},
{"status": "paused", "position": 195, "createdAt": "2020-02-
20T16:58:53.917Z"},
{"status": "stopped", "position": 195, "createdAt": "2020-02-
20T17:01:04.230Z"},
{"status": "closed", "position": 195, "createdAt": "2020-02-
20T17:01:04.250Z"}], "totalTime": 195}}
]
Если я прав, вот что вы хотите сделать:
- Сортировать ваш массив:
var sorted = data.sort((a, b) => b.session.totalTime - a.session.totalTime);
Для каждой пары объектов вы получите доступ к значению, на основе которого вы хотите отсортировать массив. Заметил, что я перевернул b
и a
в вычитании. Это потому, что вы хотите отсортировать его по убыванию, поэтому на первом месте будет большее значение.
Возьмите первую запись, которая будет иметь наибольшее время:
var entry = sorted[0];
Извлеките желаемое значение из записи:
var maxTotalTime = entry.session.totalTime;
console.log(maxTotalTime);
Я показал шаги выше, потому что вы запросили лучшее решение, но вот как вы можете исправить код, с которым пытались работать:
let maxValue = 0
let data = JSON.parse(audios).data
for (let entry of data) {
let value = entry.session.totalTime;
if (value > maxValue) {
maxValue = value;
}
}