ms-dred
@ms-dred
Вечно что то не то и что то не так...

Можно ли выбрать ключ объекта с большим числом в самом ключе?

Подскажите есть ли возможность выдернуть из объекта ключ с бОльшим числом в нем.

Есть объекты вида, данные нужны из одного объекта, а не из двух сразу
Первая версия
{
    "data": [
        {
            "page": "pageUrl",
            "userId": 777777,
            "field_75": "data1",
            "field_100": "data2",
            "field_500": "data3",
            "field_1000": "data4",
            "field_1500": "data5",
            "field_2000": "data6"
        }
    ]
}
Вторая версия
{
    "data": [
        {
            "page": "pageUrl",
            "userId": 6666,
            "field_75": "data1",
            "field_100": "data2",
            "field_500": "data3",
            "profile": "profileData"
        }
    ]
}


Целью является выдернуть из объекта ЗНАЧЕНИЕ field_* (при первом объекте data6, у второго data3) с большим числом, не хочется с циклами возиться, можно ли как то регуляркой выпилить? Сам объект не представляет ценности, можно и в строку его перевести, а вот с регуляркой у меня постоянные проблемы, к тому же не уверен что с ней полностью можно обойтись. Как быть? Что делать?)
  • Вопрос задан
  • 120 просмотров
Решения вопроса 1
@Volde
Попробуйте использовать underscore
var keys = _.keys(data[0]);
var maxNumber = 0;
var selectedItem;
_.map(keys, function(item) {
 var number = item.replace("field_", "");
 if(number > maxNumber) {
  maxNumber = number;
  selectedItem = item;
 }
 return item;
});
console.log(data[0][selectedItem])
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы