fir*_*ber 5 javascript arrays sorting json object
在您将其标记为重复之前 - 我已经浏览了这些答案:
\n\n\n\n使用 Javascript 按值对 JSON 数组对象进行排序
\n\n我尝试将代码移至我的数据中,但它不起作用。我也尝试过将每个对象项推入数组中,但这不起作用,因为每个项中仍然有一个对象。
\n\n这是我得到的一些 JSON 响应(浏览器控制台的屏幕截图)
\n\n如您所见,每个项目都有一个索引 - 我需要的是根据索引对响应进行排序。我该怎么做呢?
\n\n此回复来自维基百科 - 作为旁白。这是完整的 API 调用(如果有帮助的话)。
\n\n编辑:在此处发布一些响应代码:
\n\n "pages": {\n "736": {\n "pageid": 736,\n "ns": 0,\n "title": "Albert Einstein",\n "index": 2,\n "contentmodel": "wikitext",\n "pagelanguage": "en",\n "pagelanguagehtmlcode": "en",\n "pagelanguagedir": "ltr",\n "touched": "2018-01-24T22:40:11Z",\n "lastrevid": 821432412,\n "length": 145560,\n "fullurl": "https://en.wikipedia.org/wiki/Albert_Einstein",\n "editurl": "https://en.wikipedia.org/w/index.php?title=Albert_Einstein&action=edit",\n "canonicalurl": "https://en.wikipedia.org/wiki/Albert_Einstein",\n "thumbnail": {\n "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Einstein_1921_by_F_Schmutzer_-_restoration.jpg/38px-Einstein_1921_by_F_Schmutzer_-_restoration.jpg",\n "width": 38,\n "height": 50\n },\n "pageimage": "Einstein_1921_by_F_Schmutzer_-_restoration.jpg"\n },\n "983": {\n "pageid": 983,\n "ns": 0,\n "title": "Albert Camus",\n "index": 10,\n "contentmodel": "wikitext",\n "pagelanguage": "en",\n "pagelanguagehtmlcode": "en",\n "pagelanguagedir": "ltr",\n "touched": "2018-01-26T09:34:35Z",\n "lastrevid": 822358239,\n "length": 53639,\n "fullurl": "https://en.wikipedia.org/wiki/Albert_Camus",\n "editurl": "https://en.wikipedia.org/w/index.php?title=Albert_Camus&action=edit",\n "canonicalurl": "https://en.wikipedia.org/wiki/Albert_Camus",\n "thumbnail": {\n "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Albert_Camus%2C_gagnant_de_prix_Nobel%2C_portrait_en_buste%2C_pos%C3%A9_au_bureau%2C_faisant_face_%C3%A0_gauche%2C_cigarette_de_tabagisme.jpg/42px-Albert_Camus%2C_gagnant_de_prix_Nobel%2C_portrait_en_buste%2C_pos%C3%A9_au_bureau%2C_faisant_face_%C3%A0_gauche%2C_cigarette_de_tabagisme.jpg",\n "width": 42,\n "height": 50\n },\n "pageimage": "Albert_Camus,_gagnant_de_prix_Nobel,_portrait_en_buste,_pos\xc3\xa9_au_bureau,_faisant_face_\xc3\xa0_gauche,_cigarette_de_tabagisme.jpg"\n },\n "46721": {\n "pageid": 46721,\n "ns": 0,\n "title": "Edward VII",\n "index": 9,\n "contentmodel": "wikitext",\n "pagelanguage": "en",\n "pagelanguagehtmlcode": "en",\n "pagelanguagedir": "ltr",\n "touched": "2018-01-26T02:00:27Z",\n "lastrevid": 821663314,\n "length": 81925,\n "fullurl": "https://en.wikipedia.org/wiki/Edward_VII",\n "editurl": "https://en.wikipedia.org/w/index.php?title=Edward_VII&action=edit",\n "canonicalurl": "https://en.wikipedia.org/wiki/Edward_VII",\n "thumbnail": {\n "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/4/44/Edward_VII_in_coronation_robes.jpg/35px-Edward_VII_in_coronation_robes.jpg",\n "width": 35,\n "height": 50\n },\n "pageimage": "Edward_VII_in_coronation_robes.jpg"\n }\nRun Code Online (Sandbox Code Playgroud)\n
这是我的方法,只需转换为数组,然后返回 JSON 对象。
\n\n更新:我所做的是创建一个数组,page然后使用Array.prototype.sort()数组函数比较每个数组的索引page,然后使用for-loop排序数组中的对象重新创建 JSON 对象。
var json = {\r\n "pages": {\r\n "983": {\r\n "pageid": 983,\r\n "ns": 0,\r\n "title": "Albert Camus",\r\n "index": 10,\r\n "contentmodel": "wikitext",\r\n "pagelanguage": "en",\r\n "pagelanguagehtmlcode": "en",\r\n "pagelanguagedir": "ltr",\r\n "touched": "2018-01-26T09:34:35Z",\r\n "lastrevid": 822358239,\r\n "length": 53639,\r\n "fullurl": "https://en.wikipedia.org/wiki/Albert_Camus",\r\n "editurl": "https://en.wikipedia.org/w/index.php?title=Albert_Camus&action=edit",\r\n "canonicalurl": "https://en.wikipedia.org/wiki/Albert_Camus",\r\n "thumbnail": {\r\n "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/0/08/Albert_Camus%2C_gagnant_de_prix_Nobel%2C_portrait_en_buste%2C_pos%C3%A9_au_bureau%2C_faisant_face_%C3%A0_gauche%2C_cigarette_de_tabagisme.jpg/42px-Albert_Camus%2C_gagnant_de_prix_Nobel%2C_portrait_en_buste%2C_pos%C3%A9_au_bureau%2C_faisant_face_%C3%A0_gauche%2C_cigarette_de_tabagisme.jpg",\r\n "width": 42,\r\n "height": 50\r\n },\r\n "pageimage": "Albert_Camus,_gagnant_de_prix_Nobel,_portrait_en_buste,_pos\xc3\xa9_au_bureau,_faisant_face_\xc3\xa0_gauche,_cigarette_de_tabagisme.jpg"\r\n },\r\n "736": {\r\n "pageid": 736,\r\n "ns": 0,\r\n "title": "Albert Einstein",\r\n "index": 2,\r\n "contentmodel": "wikitext",\r\n "pagelanguage": "en",\r\n "pagelanguagehtmlcode": "en",\r\n "pagelanguagedir": "ltr",\r\n "touched": "2018-01-24T22:40:11Z",\r\n "lastrevid": 821432412,\r\n "length": 145560,\r\n "fullurl": "https://en.wikipedia.org/wiki/Albert_Einstein",\r\n "editurl": "https://en.wikipedia.org/w/index.php?title=Albert_Einstein&action=edit",\r\n "canonicalurl": "https://en.wikipedia.org/wiki/Albert_Einstein",\r\n "thumbnail": {\r\n "source": "https://upload.wikimedia.org/wikipedia/commons/thumb/3/3e/Einstein_1921_by_F_Schmutzer_-_restoration.jpg/38px-Einstein_1921_by_F_Schmutzer_-_restoration.jpg",\r\n "width": 38,\r\n "height": 50\r\n },\r\n "pageimage": "Einstein_1921_by_F_Schmutzer_-_restoration.jpg"\r\n }\r\n }\r\n};\r\n\r\nvar array = [];\r\nfor (key in json.pages) {\r\n array.push(json.pages[key]);\r\n}\r\n\r\narray.sort(function(a, b) {\r\n return a.index - b.index;\r\n});\r\n\r\njson = {\r\n "pages": {}\r\n};\r\n\r\nfor (var i = 0; i < array.length; i++) {\r\n json.pages[array[i][\'pageid\']] = array[i];\r\n}\r\n\r\nconsole.log(json);Run Code Online (Sandbox Code Playgroud)\r\n希望能帮助到你!
\n| 归档时间: |
|
| 查看次数: |
15374 次 |
| 最近记录: |