私はそれがどのように機能するのか疑問に思っています。「right [r ++]」はwhileループで「r」をインクリメントすると思います。それとも、「正しい」のどの要素を「結果」にプッシュするかを示していますか?
function merge(left, right){
var result = [],
lLen = left.length,
rLen = right.length,
l = 0,
r = 0;
while(l < lLen && r < rLen){
if(left[l] < right[r]){
result.push(left[l++]);
}
else{
result.push(right[r++]);
}
}
return result.concat(left.slice(l)).concat(right.slice(r));
}
ありがとうございました。
result.push(right[r++]);
本質的には略記です
result.push(right[r]);
r = r + 1;
変数の後の++演算子は、変数がインクリメントされる前に変数の値を返します。
比較のために、変数の前に使用します
result.push(right[++r]);
と同じ結果を達成します
r = r + 1;
result.push(right[r]);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加