![](/img/trans.png)
[英]Node.js + mongoose [RangeError: Maximum call stack size exceeded]
[英]Node.js array.sort with custom method causes RangeError: Max Call Stack Size Exceeded
因此,我有一個100,000+項的數組,這一行導致它破壞了調用堆棧:
@sortedList.sort (a, b) ->
return if a.value > b.value then -1 else 1
我將實施某種自定義類型(建議,有人嗎?)來解決該問題,但是我只是想確保我沒有做過任何公然的愚蠢而導致其崩潰的事情。
如果a.value == b.value
怎樣? 如果項目相同,則sort
比較函數應返回零 :
- 如果
compareFunction(a, b)
小於0,則將compareFunction(a, b)
排序a
比b
低的索引。- 如果
compareFunction(a, b)
返回0,則a
和b
彼此相對不變,但對所有不同元素進行排序。- 如果
compareFunction(a, b)
是大於0,排序b
比較低折射率a
。
所以你想要更多類似這樣的東西:
if a.value > b.value
-1
else if a.value < b.value
1
else
0
缺少的a.value == b.value
分支可能會導致sort
失去理智並在各處造成混亂。 否==
分支說a
在b
之前 , b
在a
之前 ,您不能期望得出明智的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.