У меня есть объект под названием «команда» с набором вложенных объектов для каждого имени команды. В этом имени команды у меня есть игроки, и я ищу, чтобы сортировать каждый массив динамически, а не делать это для каждой команды .xxxx.player.sort();Сортировка массива, вложенного в объект, который вложен в другой объект
var team = {
fnatic: {
team: "Fnatic",
player: ["Olofmeister", "JW", "Pronax", "Krimz", "Flusha"]
},
titan: {
team: "Titan",
player: ["Ex6Tenz", "shox", "RpK", "SmithZz", "Maniac"]
},
nip: {
team: "Ninjas in Pyjamas",
player: ["GeT_RiGhT", "f0rest", "allu", "friberg", "XizT"]
},
nv: {
team: "EnVy Us",
player: ["kennyS", "apeX", "NBK-", "Happy", "kioShiMa"]
},
vp: {
team: "Virtus Pro",
player: ["PashaBiceps", "Taz", "byali", "Snax", "Xx"]
}
};
Я пытаюсь сортировать массив игроков в алфавитном порядке (team.XXXX.player). Я обнаружил, что я могу сделать это, набрав
team.fnatic.player.sort();
для каждой отдельной команды, но я хочу итерацию над объектом, потому что у меня будет большое количество команд с игроками для сортировки.
Благодаря Arne Martin Aurlien on his blog and his object sort function это так близко, как я пришел с тем, что я искал и читал здесь:
for (var obj in team) {
if (team.hasOwnProperty(obj)) {
console.log(obj, team[obj].player); //line 107
[obj].player = sortObj(team[obj].player);
console.log(obj, team[obj].player); //line 109
}
}
Это, к сожалению, до сих пор только выводит несортированный массив:
fnatic ["Olofmeister", "JW", "Pronax", "Krimz", "Flusha"] script.js:107
fnatic ["Olofmeister", "JW", "Pronax", "Krimz", "Flusha"] script.js:109
titan ["Ex6Tenz", "shox", "RpK", "SmithZz", "Maniac"] script.js:107
titan ["Ex6Tenz", "shox", "RpK", "SmithZz", "Maniac"] script.js:109
...etc for each team
Я чувствую, что мне здесь что-то не хватает. Может ли кто-нибудь помочь мне?
Я считаю, что функция 'sort' не изменяет исходные значения. Если это ваше желаемое поведение, вам нужно будет назначить вывод '.sort()' обратно в объект – ochi