本文實例為大家分享了Mint Ul實現A-Z字母排序的城市選擇列表的具體代碼,供大家參考,具體內容如下
效果圖如下:

項目文件存放路徑圖:

pinying.js 和 city.json文件下載傳送門
所有代碼如下:
<template>
<mt-index-list>
<mt-index-section v-for="letter in citySortArr" :key="letter" :index="letter">
<mt-cell v-for="cityName in cityArr" :key="cityName" v-if="cityName.key == letter" :title="cityName.value "></mt-cell>
</mt-index-section>
</mt-index-list>
</template>
<script>
import city from "../assets/json/city"http://導入所有城市的JSON
import { makePy } from "../assets/js/pinying"http://導入插件獲取所有城市中文的大寫首字母
export default {
data () {
return {
arr: [],//存放初始篩選的城市名稱
cityArr: [],//存放第二次篩選后所有城市名稱
citySort: [],//存放初始獲取城市首字母大寫的數組
citySortArr: []//存放第二次篩選重復,不存在的城市首字母數組
};
},
created () {
/**
* 將json數據中的無用數據剔除
*/
for (let i in city) {
if (city[i].name != "請選擇") {//將第一層數據中為 “請選擇” 的剔除掉
this.arr.push(city[i].name);
for (let j in city[i].sub) {//將第二層數據中為 “請選擇 和 其他” 的剔除掉
if (
city[i].sub[j].name != "請選擇" &&
city[i].sub[j].name != "其他"
) {
this.arr.push(city[i].sub[j].name);//將處理后的數據存放在數組中,等待第二次篩選處理
}
}
}
}
/**
* 配置相關數據
*/
for (let k in this.arr) {
let cityKey = makePy(this.arr[k])[0].substring(0, 1);//獲取每一個市區的首字母
let cityValue = this.arr[k];//獲取所有市區
this.citySort[cityKey] = cityKey;//利用對象特性,剔除重復的字母,并將剔除后的字母存進對象中
//將所有市區信息 以( 字母 - 市區名 )的格式存在至數組中
this.cityArr[k] = {
key: cityKey,
value: cityValue
};
}
/**
* 將處理后的首字母數據對象,存放至數組中
*/
for (let p in this.citySort) {
this.citySortArr.push(this.citySort[p]);
}
/**
* 將真實存在的市區首字母按A-Z進行排序
*/
this.citySortArr = this.citySortArr.sort();
}
};
</script>
<style>
.mint-cell-title {
flex: 0 0 auto;
}
.mint-indexsection-index {
text-align: left;
}
</style>
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。