Вопрос

У меня есть 2 -размерный массив:

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

Этот массив может иметь 4, 7, 10, любое количество значений в ...

Мне нравится знать, сколько у меня пары стоимости (в этом случае это должно вернуть 4)

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

И после этого ... я покажу fondetcaption[0][0] (Первый фон), и после этого нажмите на кнопку, я люблю показать следующую: [1][0] А потом [2][0] а потом [3][0] а потом [0][0] Опять .... толкает, кажется, не работает.

Есть идеи?

Это было полезно?

Решение

Как сказали другие, это length, нет lenght.

Но никто, кажется, не обратился к второй части вашего вопроса, так что:

Тебе не нужно push проходить через значения. Все, что вам нужно, это индекс:

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++];
}

Или, если хотите, вы можете просто поместить индекс непосредственно на объект массива, поскольку объекты массива JavaScript могут иметь произвольные неэлементы, и это помогает сохранить символы вместе:

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++];
}

На самом деле, вы даже можете сделать функцию частью массива:

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();

Если сделать сам массив, контейнер этих дополнительных свойств беспокоит вас (он беспокоит некоторых людей), оберните все это в объект:

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

Другие советы

Проверьте правильность написания..

fondetcaption.length

Ты пробовал:

var howmany = fondetcaption.length;

Ваш исходный пост имеет ошибку орфографии, длина должно быть длина.

Пытаться length.

alert(fondetcaption.length);

Не уверен, что случилось, так как здесь работает нормально ..

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/

Возможно fondetcaption.lenght фактически копируется из кода и, следовательно, неправильно написан.

Это возвращает длину массива: FondetCaption.Length

У вас есть опечатка в коде. Так должно быть var howmany = fondetcaption.length, и не ... fondetcaption.lenght.

Я предлагаю вам использовать такие инструменты, как Firebug's, Chrome's или Safari's Console. Это может быть очень полезно, особенно с такими проблемами. Я копировал ваш код, попробовал его, и он работает как очарование. С упомянутой опечатки, конечно, конечно.

Ваше здоровье.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top