408 Stimmen

Array.push() wenn nicht vorhanden?

Wie kann ich in ein Array schieben, wenn keine Werte vorhanden sind? Hier ist mein Array:

[
    { name: "tom", text: "tasty" },
    { name: "tom", text: "tasty" },
    { name: "tom", text: "tasty" },
    { name: "tom", text: "tasty" },
    { name: "tom", text: "tasty" }
]

Wenn ich versuchte, erneut in das Array zu schieben, entweder mit name: "tom" o text: "tasty" Ich will nicht, dass irgendetwas passiert... aber wenn keines von beidem da ist, dann will ich, dass es passiert. .push()

Wie kann ich das tun?

-1voto

GigolNft Punkte 731

Kurzes Beispiel:

if (typeof(arr[key]) === "undefined") {
  arr.push(key);
}

-2voto

Taran Punkte 2307

Sie können das Array mit foreach überprüfen und dann das Element löschen, wenn es vorhanden ist, andernfalls ein neues Element hinzufügen...

Beispiel newItemValue &submitFields sind Schlüssel/Wert-Paare

> //submitFields existing array
>      angular.forEach(submitFields, function(item) {
>                   index++; //newItemValue new key,value to check
>                     if (newItemValue == item.value) {
>                       submitFields.splice(index-1,1);
>                         
>                     } });

                submitFields.push({"field":field,"value":value});

-2voto

jgroenen Punkte 1298

Sie können jQuery grep und push verwenden, wenn keine Ergebnisse: http://api.jquery.com/jQuery.grep/

Es ist im Grunde die gleiche Lösung wie bei der "Erweiterung des Prototyps", aber ohne Erweiterung (oder Verschmutzung) des Prototyps.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X