配列の一意の値を取得する関数を JavaScript で記述しようとしていますが、コードが正しく動作しません。他のより良い簡単な方法があることは知っていますが、コードが機能しない理由がわかりません。理解したいと思います。
関数には 2 つの for ループがあり、外側のインデックスと内側のインデックスが異なり、これらのインデックス位置の値が同じである場合、内側のインデックスの位置は別の配列にプッシュされます。内側の for ループが終了すると、他の配列で注釈が付けられたインデックスが元の配列で null 値に置き換えられ、後で削除されます。
入力: 1 2 2 3 3 3 4 4 4 4 5 5 5 5 5
ただし、出力は次のとおりです。 1 2 null null null null 4 4 4 4 5 5 5 5 5
何がうまくいかないのかわからない、誰か助けてくれる?
function uniqueArrayValues(vector) {
var indexRepeated = [];
for (let i in vector) {
for (let j in vector) {
if (vector[i] == vector[j] && i != j && j != null && i != null && i < j ) {
indexRepeated.push(j);
}
}
for (let i in indexRepeated) {
if (vector[indexRepeated[i]] != null) {
vector.splice(vector[indexRepeated[i]], 1, null);
}
}
}
}