web-dev-qa-db-fra.com

pousser un objet dans un tableau

Je sais que c'est simple, mais je ne peux pas l'obtenir.

J'ai ce code:

var nietos = [];
nietos.Push(nieto.label);
nietos.Push(nieto.value);

label est une chaîne comme "Title" et une valeur "Ramones". Si je fais cela, je vais obtenir un tableau simple comme 

["Title", "Ramones"]

J'ai besoin de créer ceci:

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

Comment puis-je faire ces Push vers le tableau nietos afin de les Push en tant qu'objets? les nombres 01, 02 seront générés avec quelques i, k vars car tout cela est dans un pour.

17
pmirnd

Vous devez créer un objet . Assign les valeurs à l'objet. Puis poussez-le dans le tableau:

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

Créez un tableau d'objet comme ceci:

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

Tout d'abord, vous créez l'objet dans la méthode Push, puis vous retournez le tableau nouvellement créé.

10
U.Shaba

La solution ci-dessous est plus simple. Tout ce que vous avez à faire est de définir une fonction simple permettant de "CRÉER" l'objet à partir des deux éléments donnés. Ensuite, appliquez simplement cette fonction à deux tableaux contenant des éléments pour lesquels vous souhaitez créer un objet et les sauvegarder dans resultArray. 

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;
}
1
syedmeesamali

["Title", "Ramones"] est un tableau de chaînes. Mais [{"01":"Title", "02", "Ramones"}] est un tableau d'objets.

Si vous souhaitez insérer des propriétés ou des valeurs dans un objet, vous devez accéder à cet objet, puis insérer des données dans cet objet . Exemple: nietos[indexNumber].yourProperty=yourValue; dans une application réelle:

nietos[0].02 = "Ramones";

Si votre tableau d'objet est déjà vide, assurez-vous qu'il contient au moins un objet ou cet objet dans lequel vous allez Transférer des données.

Disons que notre tableau est myArray[]; il s'agit donc maintenant d'un tableau vide. Le moteur JS ne sait pas quel type de données est fourni, pas de chaîne, ni d'objet ni de numéro. Nous allons donc pousser un objet (peut-être un objet vide) dans ce tableau. myArray.Push({}) ou myArray.Push({""}).

Cela va pousser un objet vide dans myArray qui aura un numéro d’indexage 0, donc votre objet exact est maintenant myArray[0]

Puis poussez property et value dans cela comme ceci:

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

Je ne suis pas vraiment sûr, mais vous pouvez en essayer quelques-unes

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"}
0
Legotin