使用map函数(JavaScript)创建一个简单的排名数组

时间:2016-08-24 18:24:00

标签: javascript arrays map-function

基本上我有一个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 个答案:

答案 0 :(得分:0)

Javascript已经让你了解。数组总是有索引,但它从零开始。如果你想要最好,只需使用

console.log(JSON[0]);

如果你坚持1为1,试试这个

function getByRank(index) {
   return JSON[index - 1]; 
}

所以你会得到最好的

console.log(getByRank(1)); // {username: "foo", score: 12343}

我认为在你的代码中json是有效的json,请参阅foo附近的" ...

答案 1 :(得分:0)

您的语法似乎已关闭,但假设JSON为:

JSON = [
  {username: 'foo', score: 12343}, 
  {username: 'bar', score: 9432}, 
  {username: 'foo-bar', score: 402}
]

由于Arrays已编入索引并且您可以使用.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}
]

希望这有帮助。

答案 2 :(得分:0)

从您的问题的角度来看,您已经获得了answer。我只是想列举一些想法,也许它们对你们中的一些人有用:

  1. 首先,JSON(JavaScript Object Notation)是一种开放标准格式,它使用人类可读的文本来序列化对象,数组,数字,字符串,布尔值和null。正如名称所示,它的语法来自JavaScript,但JSON实际上是一个文本,一个字符串。

  2. JSON字符串是(almost always)语法正确 JavaScript代码。

  3. 请确保您不使用关键字" JSON"作为变量的名称,因为JSON实际上是JavaScript中的existing object,它用于编码为JSON格式(stringify)并从JSON格式解码(解析)。 只需在JavaScript控制台中试用JSON.stringify({a: 2, b: 3});JSON.parse('{"a":2,"b":3}');