Objekt in Array schieben

Lesezeit: 4 Minuten

Benutzeravatar von pmiranda
pmiranda

Ich weiß, es ist einfach, aber ich verstehe es nicht.

Ich habe diesen Code:

// My object
const nieto = {
  label: "Title",
  value: "Ramones" 
}

let nietos = [];
nietos.push(nieto.label);
nietos.push(nieto.value);

Wenn ich das mache, bekomme ich ein einfaches Array:

["Title", "Ramones"]

Folgendes muss ich erstellen:

[{"01":"Title", "02": "Ramones"}]

Wie kann ich verwenden push() um die Objekte in die hinzuzufügen nietos Reihe?

  • "02": "Ramones" Ich nehme an? Warum in diesem Fall das Array? Klingt, als wollten Sie ein einfaches Objekt konstruieren

    – Madaras Geist

    25. Oktober 2016 um 21:37 Uhr


  • Bearbeitet, ja, sorry. Ich werde dieses Array mit einer anderen Funktion verwenden, um eine XML-Datei zu erstellen. Große Geschichte.

    – pmiranda

    25. Oktober 2016 um 21:41 Uhr

  • Das Array hat also immer genau ein Element? Das nummerierte Objekt?

    – Madaras Geist

    25. Oktober 2016 um 21:43 Uhr

  • Nein, wird mehr Objekte haben: nietos = [{“01″:”Band”, “02”: “Ramones”}, {“01″:”Style”, “02”: “RockPunk”}, {“01”: “”, “02”: “”, “03” : “Another String”}] verschiedene Objekte mit unterschiedlichen Längen.

    – pmiranda

    25. Oktober 2016 um 21:47 Uhr

Sie müssen schaffen ein Objekt. Zuordnen die Werte zum Objekt. Dann schieben Sie es in das Array:

var nietos = [];
var obj = {};
obj["01"] = nieto.label;
obj["02"] = nieto.value;
nietos.push(obj);

  • Warum müssen Sie “01” als Schlüssel verwenden? Was wäre, wenn ich verwenden wollte nieto.label als Schlüssel?

    – Amon

    4. Februar um 18:22 Uhr

  • @Amon Also wirst du obj haben[nieto.label] = nieto.value;

    – Kodfeuer

    22. August um 6:39 Uhr

Benutzeravatar von U.Shaba
U.Shaba

Erstellen Sie ein Array von Objekten wie folgt:

var nietos = [];
nietos.push({"01": nieto.label, "02": nieto.value});
return nietos;

Zuerst erstellen Sie das Objekt innerhalb der Push-Methode und geben dann das neu erstellte Array zurück.

  • Warum müssen Sie “01” als Schlüssel verwenden? Was ist, wenn ich nieto.label als Schlüssel verwenden möchte?

    – Amon

    4. Februar um 18:22 Uhr

  • @Amon Ja, das kannst du, solange ‘neito.label’ eindeutig ist, kannst du das als Schlüssel verwenden. Aber gemäß den Anforderungen der Frage musste das Objekt in diesem Format vorliegen.

    – U.Shaba

    7. Februar um 16:08 Uhr

Benutzeravatar von user889030
Benutzer889030

kann man auch so machen.

// our object array
let data_array = [];

// our object
let my_object = {}; 
   
// load data into object

my_object.name = "stack";
my_object.age = 20;
my_object.hair_color = "red";
my_object.eye_color = "green";
        
// push the object to Array
data_array.push(my_object);

Benutzeravatar von Gass
Gas

Destrukturierende Zuweisung verwenden (ES6)

const nieto = {label: 'title', value: 'ramones' } 
const modifiedObj = {01: nieto.label, 02: nieto.value}

let array = [
  {03: 'asd', 04: 'asd'}, 
  {05: 'asd', 06: 'asd'} 
]

// push the modified object to the first index of the array
array = [modifiedObj, ...array] 

console.log(array)

Wenn Sie das geänderte Objekt an den letzten Index des Arrays verschieben möchten, ändern Sie einfach das destrukturierte Array ...array Nach vorne.

array = [...array, modifiedObj]

Benutzeravatar von Towkir
Towkir

Brunnen, ["Title", "Ramones"] ist ein Array von Strings. Aber [{"01":"Title", "02", "Ramones"}] ist ein Array von Objekten.

Wenn Sie bereit sind, Eigenschaften oder Werte in ein Objekt zu schieben, müssen Sie auf dieses Objekt zugreifen und dann Daten hineinschieben. Beispiel:
nietos[indexNumber].yourProperty=yourValue; in echter anwendung:

nietos[0].02 = "Ramones";

Wenn Ihr Objektarray bereits leer ist, stellen Sie sicher, dass es mindestens ein Objekt oder das Objekt enthält, in das Sie Daten übertragen möchten.

Nehmen wir an, unser Array ist myArray[], also ist dies jetzt ein leeres Array, die JS-Engine weiß nicht, welche Art von Daten sie hat, keine Zeichenfolge, kein Objekt, keine Zahl, nichts. Also werden wir ein Objekt (vielleicht ein leeres Objekt) in dieses Array schieben. myArray.push({})oder myArray.push({""}).

Dadurch wird ein leeres Objekt hineingeschoben myArray die eine Indexnummer haben 0also ist Ihr genaues Objekt jetzt myArray[0]

Dann drücken property und value so hinein:

myArray[0].property = value;
//in your case:
myArray[0]["01"] = "value";

  • Ich habe diesen Fehler: Parsing Error: Line 59: Unexpected number while parsing file. Diese Zeile lautet: nietos[0].02 = Wert;

    – pmiranda

    25. Oktober 2016 um 21:55 Uhr

  • Versuchen nietos[0]["02"] = "Ramones"; oder nietos[0][02] = "Ramones";

    – Towkir

    25. Oktober 2016 um 21:56 Uhr

  • Nein. Ich habe diesen Fehler “Eigenschaft ‘0’ kann nicht auf undefiniert gesetzt werden” erhalten. Code ist: var grandsons = []; Enkel[0][2] = Wert;

    – pmiranda

    26. Oktober 2016 um 12:56 Uhr

  • @pmirnd Antwort wurde aktualisiert, überprüfen Sie die letzte Hälfte der Antwort 🙂

    – Towkir

    26. Oktober 2016 um 16:25 Uhr

Legotins Benutzeravatar
Legotin

Ich bin mir nicht ganz sicher, aber du kannst es so versuchen:

var pack = function( arr ) {
    var length = arr.length,
        result = {},
        i;

    for ( i = 0; i < length; i++ ) {
        result[ ( i < 10 ? '0' : '' ) + ( i + 1 ) ] = arr[ i ];
    }

    return result;
};

pack( [ 'one', 'two', 'three' ] ); //{01: "one", 02: "two", 03: "three"}

  • Ich habe diesen Fehler: Parsing Error: Line 59: Unexpected number while parsing file. Diese Zeile lautet: nietos[0].02 = Wert;

    – pmiranda

    25. Oktober 2016 um 21:55 Uhr

  • Versuchen nietos[0]["02"] = "Ramones"; oder nietos[0][02] = "Ramones";

    – Towkir

    25. Oktober 2016 um 21:56 Uhr

  • Nein. Ich habe diesen Fehler “Eigenschaft ‘0’ kann nicht auf undefiniert gesetzt werden” erhalten. Code ist: var grandsons = []; Enkel[0][2] = Wert;

    – pmiranda

    26. Oktober 2016 um 12:56 Uhr

  • @pmirnd Antwort wurde aktualisiert, überprüfen Sie die letzte Hälfte der Antwort 🙂

    – Towkir

    26. Oktober 2016 um 16:25 Uhr

Die folgende Lösung ist einfacher. Alles, was Sie tun müssen, ist, eine einfache Funktion zu definieren, die das Objekt aus den beiden gegebenen Elementen “ERSTELLEN” kann. Wenden Sie diese Funktion dann einfach auf ZWEI Arrays mit Elementen an, für die Sie ein Objekt erstellen und in resultArray speichern möchten.

var arr1 = ['01','02','03'];
var arr2 = ['item-1','item-2','item-3'];
resultArray = [];
    for (var j=0; j<arr1.length; j++) {
        resultArray[j] = new makeArray(arr1[j], arr2[j]);
    }
function makeArray(first,second) {
    this.first = first;
    this.second = second;
}

1405260cookie-checkObjekt in Array schieben

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy