а также

я есть объект, подобный этому

var total = { 'Apple': 0.6,
              'Banana': 0.6,
              'Orange': 1,
              'Grapes': 0.4,
              'Pineapple': 0.4 }

для этого, во-первых, я проверюдлина объекта.

var len = Object.keys(total).length;

Теперь я хочу преобразовать его в нужный объектkey-value формат под массивом. Что-то вроде этого:

[
   {'name': 'Apple', 'value': 0.6},
   {'name': 'Banana', 'value': 0.6},
   {'name': 'Orange', 'value': 1},
   {'name': 'Grapes', 'value': 0.4},
   {'name': 'Pineapple', 'value': 0.4}
]

Теперь я не знаю, как сделать код для решения такой проблемы. Любая помощь приветствуется

Ответы на вопрос(1)

Решение Вопроса

Массив # Карта работайте с клавишами объектов и создавайте объекты с нужной формой.

const total = { 
    'Apple': 0.6,
    'Banana': 0.6,
    'Orange': 1,
    'Grapes': 0.4,
    'Pineapple': 0.4 
};
              
const array = Object.keys(total)
                    .map(key => ({ name: key, value: total[key] }))
                    .sort((f, s) => f.value - s.value);

console.log(array);

Если вы используетеES7 или выше вы можете заменитьОбъект # ключи с участиемОбъект # записи, Используйте такжеразрушение объекта в списке параметров, чтобы получитьname а такжеvalue отдельно.

const total = { 
    'Apple': 0.6,
    'Banana': 0.6,
    'Orange': 1,
    'Grapes': 0.4,
    'Pineapple': 0.4 
};
              
const array = Object.entries(total)
                    .map(([name, value]) => ({ name, value }))
                    .sort((f, s) => f.value - s.value);;

console.log(array);

 Suren Srapyan18 дек. 2017 г., 17:38
Вам нужно добавитьsort функция в цепи.
 Iron_Man18 дек. 2017 г., 07:46
Очень круто и очень быстро. Теперь, если я хочу получить результат о порядке уменьшения значения, то как мне этого добиться?

Ваш ответ на вопрос