- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在学习 Javascript,目前正在学习数组的 .sort() 函数。我知道它可以不带参数,也可以在 a-b 和 b-a 之间带一个参数。
不过,我不明白的是return 0
、return -1
和return 1
的用法。这是一个示例(来源:http://www.codewars.com/kata/572df796914b5ba27c000c90):
var arr=[1,2,3,4,5,6,100,999]
arr.sort((a,b)=>{
if (a%2==b%2) return a-b;
if (a%2>b%2) return -1;
return 1;
})
console.log(arr)
//output: [ 1, 3, 5, 999, 2, 4, 6, 100 ]
我明白它应该做什么,即分开奇数和偶数并按升序对它们进行排序。但是return -1
和return 1
是什么意思呢?有人可以逐步指导我完成此功能吗?
我试着玩弄代码并更改一些值,例如将 return -1
更改为 return 0
,试图了解它是如何工作的,但我还是不明白。
我在哪里可以找到有关 return
元素的详细信息?
最佳答案
根据 sort docs :
If the parameter functionComparison is supplied, the elements of the array are sorted according to the return value of the comparison function. If a and bare two elements to compare, then:
If
functionComparison(a, b)
is less than0
, we sort a with an index less thanb
(a
will be ranked beforeb
)If
functionComparison(a, b)
returns 0
, we leavea
andb
unchanged relative to each other, but sorted with respect to all the other elements. Note: The ECMAScript standard does not guarantee this behavior, so all browsers (eg Mozilla versions prior to 2003) do not respect this. IffunctionComparison(a, b)
is greater than0
, we sortb
with an index less thana
.
functionComparison(a, b)
must always return the same result from the same pair of arguments. If the function returns inconsistent results, then the order in which the items are sorted is not defined.
现在如果a > b
, returning 1
或 a positive value
是一回事,类似地,如果 a < b
然后返回 -1
或 difference
是一样的。如果both are equal
difference is 0
因此 return 0
关于Javascript .sort() 函数 : what are return 0, 返回 -1 并返回 1?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49005027/
询问 unrelated question我有这样的代码: public boolean equals(Object obj) { if (this == obj) retur
在我之前的一个问题中 js: Multiple return in Ternary Operator我询问了有关使用三元运算符返回多个参数的问题。但是现在参数IsActveUser boolean(t
假设我有一个带有 return 的 if 语句。从效率的角度来看,我应该使用 if(A > B): return A+1 return A-1 或 if(A > B): return
例如考虑以下代码: int main(int argc,char *argv[]) { int *p,*q; p = (int *)malloc(sizeof(int)*10); q
PyCharm 对这段代码发出警告,说最后一个返回是不可访问的: def foo(): with open(...): return 1 return 0 如果 ope
我想实现这样的目标: 如果在返回 Json 的方法中抛出异常,则返回 new Json(new { success = false, error = "unknown"}); 但如果方法返回 View
它是多余的,但我正在学习 JS,我想知道它是如何工作的。 直接从模块返回函数 let func1 = function () { let test = function () {
我不明白我应该使用什么。我有两页 - intro.jsp(1) 和 booksList.jsp(2)。我为每一页创建了一个 Controller 类。第一页有打开第二页的按钮:
我最近在 Joomla 组件(Kunena,更准确地说是 Kunena)中看到这段代码,那么使用 $this->return VS 简单的 return 语句有什么区别. 我已经用谷歌搜索了代码,但没
我的类实现了 IEnumerable。并且可以编译这两种方式来编写 GetEnumerator 方法: public IEnumerator GetEnumerator() { yield r
我只是在编码,我想到了一个简单的想法(显然是问题),如果我有一个像这样的函数: int fun1(int p){ return(p); } 我有一个这样的函数: int fun1(int p){
这个问题在这里已经有了答案: What does the comma operator do in JavaScript? (5 个答案) 关闭 9 年前。 function makeArray
假设我写了一个 for 循环,它将输出所有数字 1 到 x: x=4 for number in xrange(1,x+1): print number, #Output: 1 2 3 4 现
我最近在这个 Apache Axis tutorial example. 中看到了下面的一段代码 int main() { int status = AXIS2_SUCCESS; ax
function a(){ return{ bb:"a" } } and function a(){ return { bb:"a" } } 这两个代码有什么区别吗,如果有请
function a() { return 1; } function b() { return(1); } 我在 Chrome 的控制台中测试了上面的代码,都返回了 1。 function c()
考虑这三个函数: def my_func1(): print "Hello World" return None def my_func2(): print "Hello World"
这可能是一个愚蠢的问题,但我正在努力,如果有一种简明的方法来测试函数的返回结果,如果它不满足条件,则返回该值(即,传递它)。。现在来回答一个可能的问题,是的,我正在寻找的类似于例外提供的东西。然而,作
我正在测试一个函数,并尝试使用 return 来做什么,并在 PowerShell 5.1 和 PwSh 7.1 中偶然发现了一个奇怪的问题,即 return cmdlet似乎不适合在团体中工作: P
这个问题已经有答案了: Return in generator together with yield (2 个回答) Why can't I use yield with return? (5 个回
我是一名优秀的程序员,十分优秀!