gpt4 book ai didi

javascript array.sort 具有未定义的值

转载 作者:可可西里 更新时间:2023-11-01 02:10:10 26 4
gpt4 key购买 nike

如何Array.prototype.sort处理数组中的未定义值?

var array = [1,undefined,2,undefined,3,undefined,4];
var array2 = [];
array2[0] = 1;array2[2] = 2;array2[4] = 3;array2[6] = 4;

调用array.sort(function(l,r) { ... });时值 undefined永远不会作为 l 传入或 r .

我可以保证所有未定义的值对于所有浏览器都将始终到达数组的末尾吗?

下面的循环会处理所有非undefined吗?数组中的数据

array.sort();
for (var i = 0; array[i] !== undefined; i++) {
// handle array
}

您可以假设没有人声明 undefined作为变量。

最佳答案

是的,您可以安全地假设 undefined 将被移动到数组的末尾。

来自 MDC :

In JavaScript 1.2, this method no longer converts undefined elements to null; instead it sorts them to the high end of the array

来自spec, 15.4.4.11 :

Because non-existent property values always compare greater than undefined property values, and undefined always compares greater than any other value, undefined property values always sort to the end of the result, followed by non-existent property values.

关于javascript array.sort 具有未定义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4783242/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com