【发布时间】:2018-10-12 18:18:05
【问题描述】:
我想对集合进行如下排序:
1) 只有“shared==true”列的结果应该首先出现,所有其他的应该在单词之后。 尝试使用以下方法,但它不起作用并显示随机。
var cmp= function (a, b) {
if (a.shared == 'true' && b.shared != 'true') return -1;
if (a.shared != 'true' && b.shared == 'true') return 0;
return 1;
}
var data= [{'id':1, 'name':'addd', 'shared':'true'},{'id':2, 'name':'addd1', 'shared':'false'},{'id':3, 'name':'addd2', 'shared':'true'}]
data.sort(cmp);
console.log(data);
【问题讨论】:
-
这不是布尔值;那是一个字符串...
-
@HereticMonkey 冒名顶替者!
-
编辑标题。它的字符串值,但真或假,需要排序。
-
data.sort((a,b) => (b.shared == 'true') - (a.shared == 'true'))
标签: javascript arrays json sorting