首页新闻找找看学习计划

js 对象数组按某一key值排序

0
悬赏园豆:50 [待解决问题]

代码:
arr=[{"name":"2","persontype":"RMTJ_SQA","title":"A申请人2"},{"name":"b1","persontype":"RMTJ_SQB","title":"B申请人1"},{"name":"1","persontype":"RMTJ_SQA","title":"A申请人1"}];

function sortBy(field) {
return function(a,b) {
debugger;
return a[field] <=b[field];
}
}

arr.sort(sortBy('persontype'))
console.log(arr);

火狐,360极速模式执行结果

谷歌运行结果:

这是为什么,希望的结果是火狐和360的

*朝晖的主页 *朝晖 | 初学一级 | 园豆:106
提问于:2019-11-27 19:12
< >
分享
所有回答(2)
0

代码没什么问题

杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:15

但是为什么运行结果不一样

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:17

@*朝晖: 清理下缓存试试,看代码是正常的

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:19

@杨宇的爸爸: 清了,打了断点发现,火狐和360都进了3次,谷歌只有2次

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:21

@*朝晖: 我用谷歌跑是正确的,不知道你的原因了

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:22

@杨宇的爸爸: 能告诉我你的版本吗谷歌,是bug吗

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:24

@*朝晖: 你下个最新的试试吧,反正我本地没问题

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:28

@*朝晖: 浏览器有这种问题的概率是很小的,你可以再排查下其他原因

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:29

@杨宇的爸爸: 我把文件发给其他同事,他们用谷歌也有问题

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:30

我用node试了也没问题

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:31

能截个图给我看看吗

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:32

@*朝晖:

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:37

@*朝晖: 文本内容就这些

<script>
arr=[{"name":"2","persontype":"RMTJ_SQA","title":"A申请人2"},{"name":"b1","persontype":"RMTJ_SQB","title":"B申请人1"},{"name":"1","persontype":"RMTJ_SQA","title":"A申请人1"}];

function sortBy(field) {
return function(a,b) {
debugger;
return a[field] <=b[field];
}
}

arr.sort(sortBy('persontype'))
console.log(arr);
</script>

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:39

@杨宇的爸爸:
奇了怪了

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:41

@*朝晖: 你直接用我贴的文本跑,看看有没有问题吧

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:43

@杨宇的爸爸: 我用的就是你的文本复制在游览器控制台中的

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:45

@*朝晖: 不可能,你截图里输出了那边多东西呢,你单纯的用这个文本跑

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 19:48

@杨宇的爸爸:

支持(0) 反对(0) *朝晖 | 园豆:106 (初学一级) | 2019-11-27 19:53

@*朝晖: 你单纯把这个文本保存到文件里,起名x.html看看,我也搞不懂了

支持(0) 反对(0) 杨宇的爸爸 | 园豆:584 (小虾三级) | 2019-11-27 20:01
1

是谷歌不支持返回ture和false
在回调方法中要写 返回大于0 或小于0的值
下面这样写就可以了

var arr=[{"name":"2","persontype":"RMTJ_SQA","title":"A申请人2"},{"name":"b1","persontype":"RMTJ_SQB","title":"B申请人1"},{"name":"1","persontype":"RMTJ_SQA","title":"A申请人1"}];
function sortBy(field) {
return function(a,b) {
return a[field] <=b[field]?-1:1;
}
}
arr.sort(sortBy('persontype'))
console.log(arr);
这样就可以了

*朝晖 | 园豆:106 (初学一级) | 2019-11-27 20:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册