Wie kann ich ein Element aus einem Array zu einem anderen Array in Javascript bewegen?

StackOverflow https://stackoverflow.com/questions/2492309

  •  21-09-2019
  •  | 
  •  

Frage

Mein Code ist wie

var shapes1 = [  r.image("node.gif",190, 100, 47, 45)];
var shapes2 =[];
for (var i = 0, ii = shapes1.length; i < ii; i++) {
    shapes1[i].mousedown(function(e){
        var temp=this.clone();
        shapes1.push(temp);
        //now I want to remove "this" from shapes1
        //and put it into shape2
        //HOW??
        isDrag=true;
        e.preventDefault();
    });
}

Vielleicht ist dies der falsche Weg, es zu tun? Ich soll stattdessen mit einer Klasse sein, ist aber nicht, dass für die DOM-Elemente?

War es hilfreich?

Lösung

Ich finde es praktisch, Dinge zu haben, wie

function removeIf(arr, predicate) {

    for (var i = 0; i < arr.length; i++) {
        if (predicate(arr[i])) {
            arr.splice(i--, 1);
        }
    }
}

So dann:

var shapes1 = [  r.image("node.gif",190, 100, 47, 45)];
var shapes2 =[];
for (var i = 0, ii = shapes1.length; i < ii; i++) {
    shapes1[i].mousedown(function(e){
        var temp=this.clone();
        shapes1.push(temp);

        removeIf(shapes1, function (item) { return item === this; });

        shapes2.push(this);

        isDrag=true;
        e.preventDefault();
    });
}

Andere Tipps

Verwendung splice (Index-Bereich), um Elemente aus einem Array zu entfernen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top