Fabricを使用して共同描画アプリケーションを作成しています。このアプリの性質上、ある種の元に戻す/消去機能を実装するよりも、一度にすべての行を一度に削除する方が良いでしょう。私はpath
Sのリストを反復処理しようとしたFabricJSで複数のパスを削除する
、そうのような:パスを削除する(議論hereとして)配列の長さを変更するため
canvas.getObjects().forEach((path) => {
if(path.senderId === client.id){
canvas.remove(path);
}
});
// Or
let paths = canvas.getObjects().filter(path => path.senderId === client.id);
while(paths.length) {
canvas.remove(paths[0]);
}
最初のものは、動作しません。しかし、第2のものは永遠に走り、私はなぜその理由がわからない。
これが間違ったアプローチの場合は、教えてください。ありがとう!
キャンバスからパスを削除しても、フィルタされたパス配列の長さは変更されません。 – Pointy
@ Pointyまあ、それはbrainfartだった。私が家にいても動作することを確認しますが、そうだと思います。ありがとう! –
私が知る限り、 'getObjects()'はライブラリが管理する内部配列への参照を返します。しかし、そのような '.filter()'を使うと、* new *配列になります。 – Pointy