これが重複する可能性があるのかどうかはわかりませんが、配列の要素の配列で要素をシフトする最善の方法を考えようとしています。このように配列の別のインデックスに配列の配列を変更する
:
var foo = [
[ {obj: 1}, {obj: 2}, {obj: 3}, {obj: 4} ],
[ {obj: 5}, {obj: 6}, {obj: 7}, {obj: 8} ],
[ {obj: 9}, {obj: 10}, {obj: 11}, {obj: 12} ]
];
IはarrayIndex所与の一つの要素を削除する場合、それは適切なアレイに進む要素の全てをシフトダウンし、その要素を除去するであろう。私はOBJ 3を除去する場合など、結果は次のようになります
var arrayIndex = 0;
var objIndex = 2;
var bar = foo[arrayIndex].splice(objIndex, 1);
結果:
var arrayIndex = 1;
var objIndex = 3;
var bar = foo[arrayIndex].splice(objIndex, 1);
結果:
bar = [
[ {obj: 1}, {obj: 2}, {obj: 4}, {obj: 5} ],
[ {obj: 6}, {obj: 7}, {obj: 8}, {obj: 9} ],
[ {obj: 10}, {obj: 11}, {obj: 12} ]
];
別の例を示し除去OBJ 8のようになり
bar = [
[ {obj: 1}, {obj: 2}, {obj: 3}, {obj: 4} ],
[ {obj: 5}, {obj: 6}, {obj: 7}, {obj: 9} ],
[ {obj: 10}, {obj: 11}, {obj: 12} ]
];
私の問題はすべての進行要素を正しい配列位置に移動します。また、空の配列を削除したいと思います。 fooの長さがどこで減少するか。 fooも変更されます。任意の助けをいただければ幸いですhttps://jsfiddle.net/mLw8kncn/1/
:
は、ここに私が試みjsfiddleました。
配列から要素を削除すると自動的にシフトしますが、実際には削除を使用した場合にのみ発生します。 Deleteは空のスペースを残すため、配列の長さは減少しません。スプライスを使用している場合、それは問題ではありません。 – zer00ne
要素を他の配列に移動したいと気付いたので、その部分に答えようとします。 – zer00ne
あなたがこれまでに試したことを示してください。 – 1983