398 votes

Comment ajouter un objet dans un tableau

Comment puis-je ajouter un objet dans un tableau (en javascript ou jquery)? Par exemple, quel est le problème de ce code?

 <!-- language: lang-js -->
function(){
    var a = new array();
    var b = new object();
    a[0]=b;
}
 

Je voudrais utiliser ce code pour enregistrer de nombreux objets dans le tableau de function1 et appeler function2 pour utiliser l'objet dans le tableau.

  1. Comment puis-je sauvegarder un objet dans un tableau?
  2. Comment obtenir un objet dans un tableau et l'enregistrer dans une variable?

768voto

John Strickler Points 8534

Mettre n'importe quoi dans un tableau à l'aide du Tableau.push().

var a=[], b={};
a.push(b);    
// a[0] === b;

Des informations supplémentaires sur les Tableaux

Ajouter plus d'un élément à la fois

var x = ['a'];
x.push('b', 'c');
// x = ['a', 'b', 'c']

Ajouter des éléments au début d'un tableau

var x = ['c', 'd'];
x.unshift('a', 'b');
// x = ['a', 'b', 'c', 'd']

Ajouter le contenu d'un tableau à l'autre

var x = ['a', 'b', 'c'];
var y = ['d', 'e', 'f'];
x.push.apply(x, y);
// x = ['a', 'b', 'c', 'd', 'e', 'f']
// y = ['d', 'e', 'f']  (remains unchanged)

Créer un nouveau tableau à partir du contenu de deux tableaux

var x = ['a', 'b', 'c'];
var y = ['d', 'e', 'f'];
var z = x.concat(y);
// x = ['a', 'b', 'c']  (remains unchanged)
// y = ['d', 'e', 'f']  (remains unchanged)
// z = ['a', 'b', 'c', 'd', 'e', 'f']

65voto

Gabi Purcaru Points 15158

Tout d'abord, il n'y a pas obejct ou array . Il existe Object et Array . Deuxièmement, vous pouvez le faire:

 a = new Array();
b = new Object();
a[0] = b;
 

Maintenant, a sera un tableau avec b comme seul élément.

10voto

Sam Points 1575

Élargir la réponse de Gabi Purcaru pour y inclure une réponse au numéro 2.

 a = new Array();
b = new Object();
a[0] = b;

var c = a[0]; // c is now the object we inserted into a...
 

8voto

Raynos Points 82706

obejct est clairement une faute de frappe. Mais les deux object et array besoin de lettres majuscules.

Vous pouvez utiliser des mains courtes pour new Array et new Object ce sont [] et {}

Vous pouvez insérer des données dans la matrice à l’aide de .push . Cela l'ajoute à la fin du tableau. ou vous pouvez définir un index pour contenir les données.

 function saveToArray() {
    var o = {};
    o.foo = 42;
    var arr = [];
    arr.push(o);
    return arr;
}

function other() {
    var arr = saveToArray();
    alert(arr[0]);
}

other();
 

0voto

josh.trow Points 3303

Vous rencontrez un problème de portée si vous utilisez votre code en tant que tel. Vous devez le déclarer en dehors des fonctions si vous prévoyez de l'utiliser entre elles (ou si vous l'appelez, transmettez-le en tant que paramètre).

 var a = new Array();
var b = new Object();

function first() {
a.push(b);
// Alternatively, a[a.length] = b
// both methods work fine
}

function second() {
var c = a[0];
}

// code
first();
// more code
second();
// even more code
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X