一連の配列を作成し、push() で要素を追加し、UI で要素を取得するために使用されるプロセスに基づいて、一連の要素を含むいくつかの配列を取得するプロセスを実行しています。
だから私はこのようなものになってしまいます。
[Object, Object, Object]
0: Object
parcels: Array[1]
ref: "IDE25.8.2013.0637548291"
region: "remote"
service: "Early Delivery"
totalPrice: 210
weight: "1"
1: Object
parcels: Array[1]
ref: "IDE25.8.2013.1507892643"
region: "remote"
service: "Saturday"
totalPrice: 135.67
weight: "1"
2: Object
parcels: Array[1]
ref: "IDE25.8.2013.1507432643"
region: "remote"
service: "Saturday"
totalPrice: 115.67
weight: "1"
オブジェクトの1つを「削除」するために学んだことから、削除を追加する必要があります
だから私は使う
delete consignmentsArr[1];
ここで、削除すると配列が削除されると想定しますが、そうではありません。1 つは、スパース配列と呼ばれるものが残ります。したがって、配列は存在せず、使用できません。その要素とオブジェクトは定義されていませんが、配列のグループのインデックスに
[Object, undefined × 1, Object]
ただし、これにより、他の配列の要素を表示する ui 要素で作成されたロジックが破棄されます。
私のアプリケーションでこの問題を解決する方法を実際に見つけようとしているわけではありません。私が知りたいのは、なぜこれがjavascriptのデフォルトの動作なのですか? 削除は、名前が示すように単なる削除ではなく、まだ存在するオブジェクトに基づいてインデックスを並べ替えるのはなぜですか? スパース配列のままにしておくと、開発プロセスでメリットがあるのはなぜですか? また...名前を変更してみませんか
sparse consignmentsArr[1];