Я сортирую данные JSON в правильном порядке, однако я хотел бы заменить значение позиции.
Мои данные JSON:
{
"dev@be-activ-it.fr-Quiz-10": {
"id": "dev@be-activ-it.fr-Quiz-10",
"user_id": "dev@be-activ-it.fr",
"myposition": 1,
"points": 35
},
"fbl@be-activ-it.fr-Quiz-10": {
"id": "fbl@be-activ-it.fr-Quiz-10",
"user_id": "fbl@be-activ-it.fr",
"myposition": 2,
"points": 38
},
"ddd@be-activ-it.fr-Quiz-10": {
"id": "ddd@be-activ-it.fr-Quiz-10",
"user_id": "ddd@be-activ-it.fr",
"myposition": 3,
"points": 37
}
}
Что я хочу:
{
"fbl@be-activ-it.fr-Quiz-10": {
"id": "fbl@be-activ-it.fr-Quiz-10",
"user_id": "fbl@be-activ-it.fr",
"myposition": 1,
"points": 38
},
"ddd@be-activ-it.fr-Quiz-10": {
"id": "ddd@be-activ-it.fr-Quiz-10",
"user_id": "ddd@be-activ-it.fr",
"myposition": 2,
"points": 37
},
"dev@be-activ-it.fr-Quiz-10": {
"id": "dev@be-activ-it.fr-Quiz-10",
"user_id": "dev@be-activ-it.fr",
"myposition": 3,
"points": 35
}
}
Мой код:
let data = fs.readFileSync('course.json/rank.json', 'utf8');
data = JSON.parse(data);
const comparePoints = (a,b)=>{
let a_points = a["points"]
let b_points = b["points"]
return b_points-a_points
}
const sort = (data) => {
let keys = Object.keys(data)
let dataAsArray = keys.map(e=>data[e])
return dataAsArray.sort(comparePoints)
}
data = sort(data);
console.log(data);
Что я получаю:
[ { "id": "fbl@be-activ-it.fr-Quiz-10",
"user_id": "fbl@be-activ-it.fr",
"myposition": 2,
"points": 38 },
{ "id": "ddd@be-activ-it.fr-Quiz-10",
"user_id": "ddd@be-activ-it.fr",
"myposition": 3,
"points": 37 },
{ "id": "dev@be-activ-it.fr-Quiz-10",
"user_id": "dev@be-activ-it.fr",
"myposition": 1,
"points": 35 } ]
Я хотел бы поменяться местами, вы можете мне помочь? ТНХ