Сортировать два типа значений в массиве объектов - PullRequest
0 голосов
/ 06 ноября 2019

Я пытаюсь отсортировать массив объектов по двум типам сортировок и в итоге помещать их в CSV-файл в четыре строки следующим образом:

  1. сортировать имена героев по их интеллекту
  2. сортировка очков героев по их интеллекту
  3. сортировка имен героев по их allPowers
  4. сортировка баллов героев по их allPowers

Этокод, который я сейчас пытаюсь:

async function getHeros () {
    let results = [];
    for (let key of Object.values(heroes)) {
        let heroesResponse = await rp({url: 'api-call', json: true});

        results.push({
            heroName: heroesResponse.name,
            intelligence: parseInt(heroesResponse.powerstats.intelligence),
            allPowers: parseStringToInt(heroesResponse.powerstats)
        });       
    }
    console.log(results);

    let sortByPower = results.sort((a,b) => {return a.allPowers - b.allPowers});
    let sortByIntelligence = results.sort((a,b) => {return a.intelligence - b.intelligence});

    // console.log('Sort by intelligence: ');

    // console.log(sortByIntelligence);

    // console.log('Sort by power: ');

    // console.log(sortByPower);

}

Вывод результатов:

[ { heroName: 'Superman', intelligence: '94', allPowers: 579 },
      { heroName: 'Sylar', intelligence: '75', allPowers: 272 },
      { heroName: 'Iron Man', intelligence: '100', allPowers: 492 },
      { heroName: 'Wolverine', intelligence: '63', allPowers: 434 },
      { heroName: 'Wonder Woman', intelligence: '88', allPowers: 567 },
      { heroName: 'Spider-Man', intelligence: '90', allPowers: 446 },
      { heroName: 'James Bond', intelligence: '88', allPowers: 268 },
      { heroName: 'Luke Skywalker', intelligence: '69', allPowers: 374 },
      { heroName: 'Mystique', intelligence: '75', allPowers: 312 },
      { heroName: 'Rogue', intelligence: '75', allPowers: 285 } ]

Вывод sortByIntelligence и sortByPower - этото же самое, что я не понимаю, почему. Если я запускаю только один вид, он работает, но не на обоих

...