代码
function SortByID(x,y) {
return x.id - y.id;
}
function SortByName(x,y) {
return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name)? 1: -1));
}
问题描述
我是 Javascript 新手,正在学习如何制作排序算法。关于上面的两个函数,我有几个问题。
1.你能用文字解释一下下面这行代码吗?
return ((x.Name == y.Name) ? 0 : ((x.Name > y.Name)? 1: -1));
2.上面代码中的问号是什么意思?
3.“?1:-1”和“?0:”是什么意思?
非常感谢!
最佳答案
您正在查看三元运算符。这是编写 if else 语句的一种简短方式。
((x.Name == y.Name) ? 0 : ((x.Name > y.Name)? 1: -1));
是一样的。
if ( x.Name == y.Name ) {
return 0;
} else {
if ( x.Name > y.Name ) {
return 1;
} else {
return -1;
}
}
另一种阅读方式是这样的。
(( Condition ) [IF TRUE] 0 [IF FALSE] (( Condition ) [IF TRUE] 1 [IF FALSE] -1 ));
关于关于排序功能的 Javascript 语法帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8928821/