Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 07.03.2021, 12:16
Интересующийся
Отправить личное сообщение для AlexandrDr Посмотреть профиль Найти все сообщения от AlexandrDr
 
Регистрация: 22.11.2018
Сообщений: 11

Вычисляемое значение ключа в объект
Здравствуйте.

Буду очень признателен, если подскажете в какую сторону копать или может дадите решение моей проблемы

Есть массив объектов:

[{
fio: "Меремьянина Наталья Владимировна",
level: "Рыцарь",
exp: 1600,
money: 100
},
{
fio: "Матюшенок Юлия Олеговна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
fio: "Подгорнова Евгения Юрьевна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
fio: "Гуреева Маргарита Валерьевна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
fio: "Мелядин Павел Сергеевич",
level: "Ветеран",
exp: 1450,
money: 200
}]


Мне необходимо в каждый объект добавить ключ со значением занимаемого места. Место вычисляется по ключам exp и money. Если у нескольких объектов значения money и exp одинаковые, то место должно быть одно

Должно получиться так:

[{
place: 1,
fio: "Меремьянина Наталья Владимировна",
level: "Рыцарь",
exp: 1600,
money: 100
},
{
place: 2,
fio: "Матюшенок Юлия Олеговна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
place: 2,
fio: "Подгорнова Евгения Юрьевна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
place: 2,
fio: "Гуреева Маргарита Валерьевна",
level: "Рыцарь",
exp: 1500,
money: 100
},
{
place: 3,
fio: "Мелядин Павел Сергеевич",
level: "Ветеран",
exp: 1450,
money: 200
}]


Заранее благодарю за любую помощь!
Ответить с цитированием
  #2 (permalink)  
Старый 07.03.2021, 12:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

AlexandrDr,
<script>
            let ar = [{
                            fio: "Меремьянина Наталья Владимировна",
                            level: "Рыцарь",
                            exp: 1600,
                            money: 100
                    },
                    {
                            fio: "Матюшенок Юлия Олеговна",
                            level: "Рыцарь",
                            exp: 1500,
                            money: 100
                    },
                    {
                            fio: "Подгорнова Евгения Юрьевна",
                            level: "Рыцарь",
                            exp: 1500,
                            money: 100
                    },
                    {
                            fio: "Гуреева Маргарита Валерьевна",
                            level: "Рыцарь",
                            exp: 1500,
                            money: 100
                    },
                    {
                            fio: "Мелядин Павел Сергеевич",
                            level: "Ветеран",
                            exp: 1450,
                            money: 200
                    }
            ];
            ar.reduce((a, b) => {
                    let { exp, money } = b;
                    if (!a[[exp, money]]) a[[exp, money]] = ++a.count;
                    b.place = a[[exp, money]];
                    return a
            }, { count: 0 });
            document.write(`<pre>${JSON.stringify(ar, "", 2)}</pre>`)
    </script>

Последний раз редактировалось рони, 07.03.2021 в 12:46.
Ответить с цитированием
  #3 (permalink)  
Старый 08.03.2021, 21:53
Интересующийся
Отправить личное сообщение для AlexandrDr Посмотреть профиль Найти все сообщения от AlexandrDr
 
Регистрация: 22.11.2018
Сообщений: 11

рони,
Огромное вам спасибо!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить значение календаря и вставить в input val kupidon jQuery 3 23.02.2017 19:47
Значение переменной присваивается только со второй попытки thesun Общие вопросы Javascript 9 29.01.2016 20:52
Проблемы с выпадающим списком JavaScript ursus102 Общие вопросы Javascript 0 16.01.2016 19:30
Как передать значение в функцию в переменную с нужным именем? bratkovsky Общие вопросы Javascript 1 12.10.2015 08:18
не сохраняется значение переменной при событии cyberpunk Events/DOM/Window 2 21.09.2012 09:59