Создать простой массив рангов, используя функцию карты (JavaScript)
По сути, у меня есть JSON, который находится в следующем формате:
JSON= [
{username: foo, score: 12343},
{username: bar, score: 9432},
{username: foo-bar, score: 402, ...
]
Я знаю, что JSON, который я получаю, уже ранжируется от наивысшего к низшему, основываясь на результатах.
Как я могу сделать массив, который автоматически вставляет позицию ранга? Например, я хотел бы увидеть вывод:
[1, username: foo, score: 12343],
[2, username: bar, score: 9432],
[3, username: foo-bar, score: 402],...
3 ответа
Ваш синтаксис кажется выключенным, но при условии, что JSON:
JSON = [
{username: 'foo', score: 12343},
{username: 'bar', score: 9432},
{username: 'foo-bar', score: 402}
]
Поскольку массивы индексируются 0, и у вас есть доступ к текущему индексу в .map
метод, вы можете сделать что-то по следующему:
JSON = JSON.map(function (record, index) {
record.rank = index + 1;
return record;
})
Это должно дать вам следующий вывод:
[
{ rank: 1, username: 'foo', score: 12343 },
{ rank: 2, username: 'bar', score: 9432},
{ rank: 3, username: 'foo-bar', score: 402}
]
Надеюсь это поможет.
Javascript уже помог вам. Массив всегда имеет индексы, хотя он начинается с нуля. Если вы хотите лучшее, просто используйте
console.log(JSON[0]);
и если вы настаиваете, чтобы 1 был 1, попробуйте это
function getByRank(index) {
return JSON[index - 1];
}
так что вы получите лучшее с
console.log(getByRank(1)); // {username: "foo", score: 12343}
Я думаю, что в вашем коде JSON является действительным JSON, см. "
вокруг фу...
Строго говоря, с точки зрения вашего вопроса вы уже получили ответ. Я просто хочу перечислить некоторые идеи, возможно, они будут полезны для некоторых из вас в будущем:
Прежде всего, JSON (нотация объектов JavaScript) - это формат открытого стандарта, который использует читаемый человеком текст для сериализации объектов, массивов, чисел, строк, логических значений и нулевого значения. Его синтаксис, как следует из названия, получен из JavaScript, но на самом деле JSON - это текст, строка.
Строка JSON является ( почти всегда) синтаксически правильным кодом JavaScript.
Убедитесь, что вы не используете ключевое слово "JSON" в качестве имени переменной, поскольку JSON на самом деле является существующим объектом в JavaScript и используется для кодирования в формат JSON (stringify) и декодирования из формата JSON (parse). Просто попробуй
JSON.stringify({a: 2, b: 3});
а такжеJSON.parse('{"a":2,"b":3}');
в консоли JavaScript.