Hur man lägger till ett objekt i en matris

Hur kan jag lägga till ett objekt i en array (i javascript eller jquery)? Vad är till exempel problemet med den här koden?

function(){
    var a = new array();
    var b = new object();
    a[0]=b;
}

Jag skulle vilja använda den här koden för att spara många objekt i arrayen för funktion1 och anropa funktion2 för att använda objektet i arrayen.

  1. Hur kan jag spara ett objekt i en array?
  2. Hur kan jag lägga ett objekt i en array och spara det i en variabel?

Sätt in vad som helst i en array med Array.push().

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

Extra information om matriser

Lägg till mer än ett objekt åt gången

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

Lägga till objekt i början av en array

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

Lägga till innehållet i en array till en annan

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)

Skapa en ny matris från innehållet i två matriser

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']
Kommentarer (2)

För det första finns det inget object eller array. Det finns Object och Array. För det andra, du kan göra det:

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

Nu blir a en array med b som enda element.

Kommentarer (1)

obejct är uppenbarligen ett skrivfel. Men både object och array behöver stora bokstäver.

Du kan använda kortfattade ord för new Array och new Object, dessa är [] och {}.

Du kan skicka in data i matrisen med hjälp av .push. Då läggs den till i slutet av arrayen. eller så kan du ange ett index som innehåller data.

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

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

other();
Kommentarer (1)