javascript中字符串和布尔值的排序数组
我很难让这种机器工作。 当前始终优先于名称。 我可以让它对current或name的值进行排序,但不能同时对两者进行排序 我的数组看起来像这样javascript中字符串和布尔值的排序数组,javascript,sorting,Javascript,Sorting,我很难让这种机器工作。 当前始终优先于名称。 我可以让它对current或name的值进行排序,但不能同时对两者进行排序 我的数组看起来像这样 var arr = [{current:true, name:"A name"}, {name:"A name"}, {name:"B name"}, {current:true, name:"B name"}]; arr.sort(sort_me) 这里是排序函数 var sort_me = functio
var arr = [{current:true, name:"A name"},
{name:"A name"}, {name:"B name"},
{current:true, name:"B name"}];
arr.sort(sort_me)
这里是排序函数
var sort_me = function(left, right){
var value = "name";
var sort_by_val = function(){
return left[value] == right[value] ? 0 : (left[value] < right[value] ? -1 : 1);
}
if(left.current===right.current) {
sort_by_val();
}else{
if(left.current===true){
return -1;
}else{
if(right.current===true){
return 1;
}else{
sort_by_val();
}
}
}
}
var sort\u me=函数(左、右){
var value=“name”;
var sort_by_val=函数(){
返回左[值]==右[值]?0:(左[值]<右[值]?-1:1);
}
if(左.当前===右.当前){
按值排序();
}否则{
如果(左。当前===真){
返回-1;
}否则{
如果(右。当前===真){
返回1;
}否则{
按值排序();
}
}
}
}
您缺少一个返回:
if(left.current===right.current) {
return sort_by_val();
}
否则,如果同时设置了当前
s,则返回值将为未定义
:
var sort_me = function(left, right){
var nameorder = left.name === right.name ? 0 : (left.name < right.name ? -1 : 1);
if(
(left.current && right.current) ||
(!left.current && !right.current)
) {
return nameorder;
} else if(left.current) {
return -1;
} else {
return 1;
}
}
var sort\u me=函数(左、右){
var nameorder=left.name==right.name?0:(left.name
您缺少一个返回:
if(left.current===right.current) {
return sort_by_val();
}
否则,如果同时设置了当前
s,则返回值将为未定义
:
var sort_me = function(left, right){
var nameorder = left.name === right.name ? 0 : (left.name < right.name ? -1 : 1);
if(
(left.current && right.current) ||
(!left.current && !right.current)
) {
return nameorder;
} else if(left.current) {
return -1;
} else {
return 1;
}
}
var sort\u me=函数(左、右){
var nameorder=left.name==right.name?0:(left.name
试试看
var sort\u me=函数(左、右){
var value=“name”;
var sort_by_val=函数(){
返回左[值]==右[值]?0:(左[值]<右[值]
? -1
: 1);
}
if(left.current==right.current){
return sort_by_val();//缺少返回
}否则{
如果(left.current==true){
返回-1;
}else if(right.current==true){
返回1;
}否则{
return sort_by_val();//缺少返回
}
}
}
演示:试试看
var sort\u me=函数(左、右){
var value=“name”;
var sort_by_val=函数(){
返回左[值]==右[值]?0:(左[值]<右[值]
? -1
: 1);
}
if(left.current==right.current){
return sort_by_val();//缺少返回
}否则{
如果(left.current==true){
返回-1;
}else if(right.current==true){
返回1;
}否则{
return sort_by_val();//缺少返回
}
}
}
演示: