MAXScript に関する質問と回答 > MAXScript 値の操作 > 配列から、重複した配列を削除する方法はありますか。 |
しばらくの間、やり方を考えているのですが、まったくわかりません。状況を説明します。 次のような複数の配列からなる配列があるとします。
#(#(1, 5), #(6, 10), #(6, 10), #(14, 18), #(14, 18))
どのようにすれば、重複した配列 (この場合、2 番目と 3 番目、4 番目と 5 番目) を検索して取り除くことができるでしょうか。
findItem を使用した場合、最初のインスタンスだけが返され、以降の検索が行われません。また、「for」ループをネストにして最初の数値と 2 番目の数値を比較しようとしましたが、考えている処理を行うようには設定できません。主に、配列をループで処理するときに、配列から項目を削除すると問題が起きてしまうようです。
デバッグ用の出力を追加したロング バージョンを示します。 これを見ればどのように処理されているかがわかります。
ループ処理を行っている配列から要素を削除するときに、必ず後方からカウントすることが重要になります。このようにしないと、要素が削除されたことより、配列項目の番号が更新されるため、ループが混乱してしまいます。