国产成人精品亚洲777人妖,欧美日韩精品一区视频,最新亚洲国产,国产乱码精品一区二区亚洲

您的位置:首頁技術文章
文章詳情頁

javascript - 關于這組數據如何實現 按字母列表分類展示 不改動數據結構

瀏覽:128日期:2022-12-05 08:23:25

問題描述

var data = [{ 'name': '渦陽', 'pinyin': 'WoYang'}, { 'name': '邳州', 'pinyin': 'PiZhou'}, { 'name': '玉溪', 'pinyin': 'YuXi'}, { 'name': '無錫', 'pinyin': 'WuXi'}, { 'name': '萍鄉', 'pinyin': 'PingXiang'}];

按照字母 A B C ...列表歸類 如

P-> { 'name': '萍鄉', 'pinyin': 'PingXiang' }, { 'name': '邳州', 'pinyin': 'PiZhou' }

類似鏈接描述

怎么操作這組數據。。

我的代碼,比較渣 求更優雅的寫法function jsfu(data) { var obj={} data.map(function(item, index) {let codeIndex = item.pinyin.charAt(0)if (!obj[codeIndex]) { obj[codeIndex] = {item: [] }} obj[codeIndex].item.push(item) }) return obj}怎么排序,發現在頁面是無序的,是js對象無序特性!

問題解答

回答1:

function jsfu(data) { var map = {} , arr = [] , dest = [] for (let i = 0; i < data.length; i++) {arr.push({ code: data[i].pinyin.charAt(0), item: data[i]}) } for (let i = 0; i < arr.length; i++) {if (!map[arr[i].code]) { dest.push({code: arr[i].code,item: [arr[i].item] }) map[arr[i].code] = arr[i].code} else { for (let j = 0; j < dest.length; j++) {if (dest[j].code == arr[i].code) { dest[j].item.push(arr[i].item); break;} }} } //排序 dest.sort(function(a, b) {if (a.code > b.code) { return 1;}if (a.code < b.code) { return -1;}return 0; }) return dest}jsfu(data)

[ {'code': 'P','item': [ {'name': '邳州','pinyin': 'PiZhou' }, {'name': '萍鄉','pinyin': 'PingXiang' }] }, {'code': 'W','item': [ {'name': '渦陽','pinyin': 'WoYang' }, {'name': '無錫','pinyin': 'WuXi' }] }, {'code': 'Y','item': [ {'name': '玉溪','pinyin': 'YuXi' }] }]回答2:

data = data.sort(function(a, b) { return a.pinyin[0].localeCompare(b.pinyin[0])})console.log(JSON.stringify(data))

標簽: JavaScript
相關文章:
主站蜘蛛池模板: 普安县| 西乡县| 陵水| 阳东县| 正宁县| 贺兰县| 长乐市| 宝应县| 和静县| 信阳市| 德安县| 吴旗县| 晋州市| 仙居县| 蓬安县| 林州市| 淮北市| 衡阳市| 乌拉特前旗| 永修县| 陆河县| 佳木斯市| 读书| 垦利县| 新津县| 安庆市| 襄垣县| 敦化市| 沁源县| 农安县| 太仆寺旗| 巨鹿县| 出国| 县级市| 微山县| 平顺县| 嘉义市| 方山县| 毕节市| 桂林市| 阿瓦提县|