Получение наибольшего значения ключа - PullRequest
0 голосов
/ 18 мая 2018

labels - это словарь словарей:

Я хочу получить самое высокое значение ключа, в этом примере самое высокое значение ключа равно 4.

Мой кусок кода для достижения этогоЗадача labels[labels.length - 1].id, но она не сработала.

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Используйте Object.keys(), который сортирует объект по key, а затем получает последний ключ из этого массива.Для лучшего примера я взял ключ со значением "5" на первом месте в объекте:

var data = {"5":{"id":"5","image":"1-0.png","name":"","xMax":"4802","xMin":"4770","yMax":"156","yMin":"141"},"2":{"id":"2","image":"1-0.png","name":"","xMax":"4895","xMin":"4810","yMax":"157","yMin":"141"},"3":{"id":"3","image":"1-0.png","name":"","xMax":"4923","xMin":"4903","yMax":"156","yMin":"145"},"4":{"id":"4","image":"1-0.png","name":"","xMax":"4956","xMin":"4931","yMax":"156","yMin":"145"}};

var keys = Object.keys(data);
var highestKey = keys[keys.length - 1];
console.log('highest key value is '+ highestKey);
var higestObj = data[highestKey];
console.log(higestObj);
0 голосов
/ 18 мая 2018

Поскольку в Javascript объект является неупорядоченным набором свойств , вы не можете найти ключ max , просто используя labels[labels.length - 1].id

.необходимо использовать метод Object.keys и синтаксис

let labels = {"1":{"id":"1","image":"1-0.png","name":"","xMax":"4802","xMin":"4770","yMax":"156","yMin":"141"},"2":{"id":"2","image":"1-0.png","name":"","xMax":"4895","xMin":"4810","yMax":"157","yMin":"141"},"3":{"id":"3","image":"1-0.png","name":"","xMax":"4923","xMin":"4903","yMax":"156","yMin":"145"},"4":{"id":"4","image":"1-0.png","name":"","xMax":"4956","xMin":"4931","yMax":"156","yMin":"145"}}

console.log(Math.max(...Object.keys(labels)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...