接口获取一个数组,类似这样
List:[
{
0:{number:1,name:'四赵日天'}
1:{number:2,name:'二赵日天'}
2:{number:3,name:'八赵日天'}
}
]
然后通过这样的方法把 name 提取到 NewList 数组里面
let NewList= [];
for (let item of this.List){
NewList.push(item.name)
}
提取后的 NewList 中的 name 排序是这样的:
NewList:{
0:'四赵日天',
1:'二赵日天',
2:'八赵日天'
}
求问 vue 中要怎么做处理才能让它自定义排序,像这样排序?
NewList:{
0:'二赵日天',
1:'四赵日天',
2:'八赵日天'
}
求大佬们解答,先谢谢大佬们了!
1
Marstin 2019-10-16 09:48:00 +08:00 1
最简单的就是冒泡啊。
但是你这排序规则怎么定义呢,取前几位字符,汉字转阿拉伯数字,再根据阿拉伯数字排序? |
2
Zach369 2019-10-16 09:49:49 +08:00 1
没有太简单的方法. 做一个 1 对应一,2 对应二,以此类推的 map.然后转换下.就可以了
|
3
zhuzhibin 2019-10-16 09:56:21 +08:00 via iPhone
最重要的是排序规则吧
|
4
zhw2590582 2019-10-16 10:06:50 +08:00 2
```js
const NewList = ['四赵日天', '二赵日天', '八赵日天']; const arr = ['一', '二', '三', '四', '五', '六', '七', '八', '九'] const list = NewList.sort((a, b) => arr.indexOf(a[0]) - arr.indexOf(b[0])) ``` |
5
shuichengjian 2019-10-16 10:08:07 +08:00
汉字转拼音 ,再排序吧。
|
6
ceet 2019-10-16 10:12:52 +08:00 1
我们可以对任何对象类型的数组排序,比如,对象 Person 有名字和年龄属性,我们希望根据年龄排序,那么我们可以这么写:
const friends=[ {name:'john',age:30}, {name:"lily",age:20}, {name:"merry",age:24}, ]; function comparePerson(property){ return function(a,b){ if(a[property] < b[property]){ return -1; } if(a[property] > b[property]){ return 1; } return 0; } } console.log(friends.sort(comparePerson('age'))); 这是最简单的根据年龄 age 排序,如果要排序的字段里面包含汉字或者英文字母要怎么排呢,我们可以这么写: let data = [ {chinese: '蔡司', english: 'Chase'}, {chinese: '艾伦', english: 'Allen'}, {chinese: '左拉', english: 'Zola'}, {chinese: '贝克', english: 'Baker'}, {chinese: '伯格', english: 'Berg'}, {chinese: '菲奇', english: 'Fitch'}, {chinese: '迪安', english: 'Dean'}, {chinese: '厄尔', english: 'Earle'}, {chinese: '亨利', english: 'Henry'}, ]; //根据汉字首字母排序 //使用箭头函数 // [注] localeCompare() 是 js 内置方法 // data.sort((a, b)=> b.chinese.localeCompare(a.chinese, 'zh')); //z~a 排序 // data.sort((a, b)=> a.chinese.localeCompare(b.chinese, 'zh')); //a~z 排序 // console.log(data); //根据英文排序 比较 首字母 ASCLL 码 // console.log(data[0].english.charCodeAt(0)); // data.sort((a, b) => b.english.charCodeAt(0) - a.english.charCodeAt(0)); //z~a 排序 data.sort((a, b) => a.english.charCodeAt(0) - b.english.charCodeAt(0)); //a~z 排序 console.log(data); |
7
belin520 2019-10-16 10:14:45 +08:00
|
8
DrugsZ 2019-10-16 10:28:52 +08:00
都不如存的时候前面用阿拉伯数字标志数字,展示的时候把阿拉伯数字切掉省心
|
9
orzorzorzorz 2019-10-16 10:39:41 +08:00
|
10
ChengNaNA OP @zhw2590582 谢谢大佬了,参考这个方法解决了[]~( ̄▽ ̄)~
|
11
FantasyPupil 2019-10-16 11:38:31 +08:00
取首字母,或者根据字符长度进行排序。
|