tl; dr; 私の説明がなくても、以下のコードと出力を見て、何かが怪しいことがわかります。Spliceは、スプライスしたインデックスを返しますが、データは配列に残ります。
だから私はほとんど配列のようにキー設定されたオブジェクトを持っています(0,1,2,3 ...など)。各オブジェクトキーには配列値があります。配列はオブジェクトの配列です。これは、私が使用している基本構造を示す簡略化されたオブジェクトです。
obj = {
'1': [{},{},{},{}],
'2': [{},{},{},{}],
'3': [{},{},{},{}]
};
それらの配列の1つから配列インデックス(オブジェクト)の1つをスプライスアウトする必要があるコードがいくつかあります。これはコードであり、コンソールがすべてをログに記録します(以下の出力を示します)。
console.log(indices_to_remove);
for(j = 0; j < indices_to_remove.length; j++) {
console.log("i: " + i)
console.log('j: ' + j)
console.log(this._index);
console.log(this._index[i].splice(indices_to_remove[j], 1));
console.log(this._index);
}
2番目の「console.log(this._index);」に注意してください。スプライスされたオブジェクトは、元の配列の一部のままです。this._index[2]のアイテムが1つ少なくなると思います。また、インデックス0をスプライスアウトする必要がありますが、インデックス1が返されます。
出力は次のとおりです。
ですから、私が間違っているかもしれないことについて誰かが何か洞察を持っているなら、声を上げてください!
ありがとう、マイク