私はint配列を昇順でソートしており、特定の境界に従って配列の項目をテールから削除したいと思います。私の場合、配列を切り捨てるより良い方法は何ですか?次のコードスニペットを考える:JavaScript - 配列を切り捨てるより効率的な方法
var a = [1, 2, 3, 4];
var length = a.length;
var boundary = 2;
var count = 0;
for (var i = length - 1; i >= 0; i--) {
if (a[i] > boundary) {
a[i] = null; // or delete a[i] ???
count++;
}
}
a.length -= count;
、または同じしかしスプライス使用:十分
for (var i = length - 1; i >= 0; i--) {
if (a[i] > boundary) {
a.splice(i, 1);
}
}
これら2つのコードスニペットは非常に異なることを行い、どちらもテールだけにある要素を削除しません。私が何を意味するのかを見るには、あなたの配列として '[4、3、2、1]'を使います。 – 4castle
私の配列は常に昇順にソートされます。 – Alex
ああ、私はその細部に気付かなかった。バイナリ検索を使用する必要があります。 – 4castle