Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按多个数据属性对div进行排序时,如何指定ASC/DESC?_Javascript_Sorting - Fatal编程技术网

Javascript 按多个数据属性对div进行排序时,如何指定ASC/DESC?

Javascript 按多个数据属性对div进行排序时,如何指定ASC/DESC?,javascript,sorting,Javascript,Sorting,在这个问题上-对我来说很有效。但是,我需要能够指定每个属性是ASC还是DESC 我将如何修改js以启用此功能 我是这样想的: divList.sort(multiSort(["status","ASC","order","DESC"])); 但我不知道从何处开始,让JS查看数组中的每一项,然后相应地调整排序顺序 $(document.body).on('click','sortthem',function(){

在这个问题上-对我来说很有效。但是,我需要能够指定每个属性是ASC还是DESC

我将如何修改js以启用此功能

我是这样想的:

divList.sort(multiSort(["status","ASC","order","DESC"]));
但我不知道从何处开始,让JS查看数组中的每一项,然后相应地调整排序顺序

$(document.body).on('click','sortthem',function(){
var divList=$(“.sortme”);
排序(多排序([“状态”,“顺序]));
$(“#mydivs”).html(divList);
});
函数多重排序(字段){
返回函数(a,b){
返回字段
.map(功能(o){
返回$(a).数据(o)>$(b).数据(o)?1:$(a).数据(o)<$(b).数据(o)?-1:0;
}).reduce(函数firstnonzervalue(el,n){返回el?el:n},0);
};
}

4.
3.
2.
1.

对它们进行排序
将字段和方向包装成子数组将更具语义(也更易于编码),如:

divList.sort(multiSort([["status","ASC"],["order","DESC"]]));
如果没有问题,则可以轻松修改代码:

$(document.body).on('click','sortthem',function(){
var divList=$(“.sortme”);
排序(多排序([[“状态”、“ASC”]、[“顺序”、“描述”]]);
$(“#mydivs”).html(divList);
});
函数多重排序(字段){
返回函数(a,b){
返回字段
.map(函数([o,d]){
返回($(a).数据(o)>$(b).数据(o)?1:$(a).数据(o)<$(b).数据(o)?-1:0)*(d=='ASC'?1:d=='DESC'?-1:0);
})
.reduce(函数firstnonzervalue(el,n){返回el?el:n},0);
};
}

4.
3.
2.
1.

对它们进行排序
,这绝对没问题,而且效果很好-包括>2个字段。非常感谢您的帮助,非常感谢:)啊-我在.map函数的IE 11“预期标识符”中遇到一个错误-我想您对我需要如何修改代码以使其在IE中工作没有任何想法,可以吗?如果是的话,非常感谢@这是因为IE11不支持解构。如果需要支持它,请将
([o,d])
替换为
(o)
,并将该函数中出现的
o
替换为
o[0]
,将
d
替换为
o[1]
。我已经把它包括在我的答案中了,看一看太棒了-非常感谢@FZs-像一个符咒一样工作-谢谢:)