Frage

Ich habe ein 2 -Dimension -Array:

var fondetcaption = [
        ["fond/fond1.jpg","« aaa"],    
        ["fond/fond2.jpg","« bbb"],
        ["fond/fond3.jpg","« ccc"],
        ["fond/fond4.jpg","« ddd"]          
    ];

Dieses Array kann 4, 7, 10, eine beliebige Anzahl von Wert in ...

Ich möchte wissen, wie viele Wertpaare ich habe (es sollte in diesem Fall 4 zurückgeben)

var howmany = fondetcaption.lenght; // doesn't work !

Und danach ... ich werde zeigen fondetcaption[0][0] (Der erste Hintergrund) und danach auf eine Schaltfläche klicken, zeige ich gerne den nächsten: [1][0] und dann als nächstes [2][0] und dann [3][0] und dann [0][0] wieder .... Push scheint nicht zu funktionieren.

Irgendeine Idee?

War es hilfreich?

Lösung

Wie die anderen gesagt haben, ist es length, nicht lenght.

Aber niemand scheint den zweiten Teil Ihrer Frage angesprochen zu haben, also:

Du brauchst nicht push durch die Werte durchlaufen. Alles, was Sie brauchen, ist ein Index:

var fondetcaption = [
    ["fond/fond1.jpg","« aaa"],    
    ["fond/fond2.jpg","« bbb"],
    ["fond/fond3.jpg","« ccc"],
    ["fond/fond4.jpg","« ddd"]          
];
var fondetcaptionIndex = 0;

// Call this when you click your button or whatever
function getNextBackground() {
    if (fondetcaptionIndex >= fondetcaption.length) {
        fondetcaptionIndex = 0;
    }
    return fondetcaption[fondetcaptionIndex++];
}

Oder, wenn Sie möchten, können Sie den Index einfach direkt auf das Array-Objekt setzen, da JavaScript-Array-Objekte willkürliche Nicht-Element-Eigenschaften haben können und die Symbole zusammenhalten:

var fondetcaption = [
    ["fond/fond1.jpg","« aaa"],    
    ["fond/fond2.jpg","« bbb"],
    ["fond/fond3.jpg","« ccc"],
    ["fond/fond4.jpg","« ddd"]          
];
fondetcaption.index = 0;

// Call this when you click your button or whatever
function getNextBackground() {
    if (fondetcaption.index >= fondetcaption.length) {
        fondetcaption.index = 0;
    }
    return fondetcaption[fondetcaption.index++];
}

Tatsächlich können Sie sogar die Funktion des Arrays zu einem Teil des Arrays machen:

var fondetcaption = [
    ["fond/fond1.jpg","« aaa"],    
    ["fond/fond2.jpg","« bbb"],
    ["fond/fond3.jpg","« ccc"],
    ["fond/fond4.jpg","« ddd"]          
];
fondetcaption.index = 0;
fondetcaption.getNext = function() {
    if (this.index >= this.length) {
        this.index = 0;
    }
    return this[this.index++];
};

// Use
background = fondetcaption.getNext();

Wenn das Array selbst zum Behälter dieser zusätzlichen Eigenschaften Sie stört (es stört einige Menschen), wickeln Sie das Ganze in ein Objekt ein:

var fondetcaption = (function() {
    var index = 0,
        values = [
            ["fond/fond1.jpg","« aaa"],    
            ["fond/fond2.jpg","« bbb"],
            ["fond/fond3.jpg","« ccc"],
            ["fond/fond4.jpg","« ddd"]          
        ];

    function fondetcaption_getNext() {
        if (index >= values.length) {
            index = 0;
        }
        return values[index++];
    }

    return {
        values:  values,
        getNext: fondetcaption_getNext
    };
})();

// Sample use:
background = fondetcaption.getNext();

// Original array still accessible if desired as fondetcaption.values

Andere Tipps

überprüfe deine Rechtschreibung..

fondetcaption.length

Hast du versucht:

var howmany = fondetcaption.length;

Ihr ursprünglicher Beitrag hat einen Rechtschreibfehler, Lenght muss sein Länge.

Versuchen length.

alert(fondetcaption.length);

Ich bin mir nicht sicher, was los ist, da es hier gut funktioniert.

var fondetcaption = [
        ["fond/fond1.jpg","« aaa"],    
        ["fond/fond2.jpg","« bbb"],
        ["fond/fond3.jpg","« ccc"],
        ["fond/fond4.jpg","« ddd"]          
];

alert(fondetcaption.length); 

http://jsfiddle.net/tlpwp/

Vielleicht fondetcaption.lenght wird tatsächlich aus dem Code kopiert und somit falsch geschrieben.

Dies gibt die Länge des Arrays zurück: fondetkaption.length

Sie haben einen Tippfehler im Code. Es sollte sein var howmany = fondetcaption.length, und nicht ... fondetcaption.lenght.

Ich schlage vor, Sie verwenden Tools wie Firebugs, Chrome oder Safari's Console. Es kann sehr hilfreich sein, insbesondere bei solchen Problemen. Ich kopierte Ihren Code, habe es ausprobiert und er funktioniert wie Charme. Natürlich mit dem genannten Tippfehler festgelegt.

Prost.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top