关于排序功能的 Javascript 语法帮助

标签 javascript

代码

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/

相关文章:

javascript - 如何使用 IN.API.Profile ("me"获取公司详细信息)Javascript API 调用

javascript - 将两个div的值相乘,然后用JS替换其中一个

javascript - 根据用户所在的页面更改 div 中的文本

javascript - 单击函数内部的事件在单击外部触发

javascript - 获取不同列中的隐藏输入[type=hidden]

javascript - 如何使用javascript仅删除字符串中的html标签

javascript - 如何从 MongoDB 中的数组中提取对象

javascript - JQuery load() 使 Jquery 函数多次触发

javascript - Google Maps API : markerwithlabel. js - 未捕获的 ReferenceError:未定义谷歌

javascript - DOM 移除时的 Knockoutjs 清理