Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 简单数组问题_Javascript_Arrays - Fatal编程技术网

Javascript 简单数组问题

Javascript 简单数组问题,javascript,arrays,Javascript,Arrays,我有一个二维数组: var fondetcaption = [ ["fond/fond1.jpg","« aaa"], ["fond/fond2.jpg","« bbb"], ["fond/fond3.jpg","« ccc"], ["fond/fond4.jpg","« ddd"] ]; 该数组可以有4,7,10,任意数量的值 我想知道我有多少对值,在这种情况下它应该返回4 var howma

我有一个二维数组:

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]。。。。推似乎不起作用


有什么想法吗?

我不确定出了什么问题,因为它在这里很好用

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

alert(fondetcaption.length); 
可能fondetcaption.lenght实际上是从代码中复制的,因此拼写错误。

您是否尝试过:

var howmany = fondetcaption.length;
您的原始帖子有拼写错误,lenght必须是length。

试试length


这将返回数组的长度: fondetcaption.length

检查拼写

fondetcaption.length

正如其他人所说,这是长度,而不是长度

但似乎没有人回答你问题的第二部分,因此:

您不需要按循环遍历这些值。您只需要一个索引:

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

你的密码有误。它应该是var howmany=fondetcaption.length,而不是。。。FondettCaption.Lengh

我建议您使用Firebug、Chrome或Safari控制台等工具。这可能非常有帮助,尤其是对于这样的问题。我复制粘贴了你的代码,试过了,效果很好。当然,上面提到的打字错误已经纠正了


干杯。

您在哪里使用阵列?因为它对我有用。你的数组是在本地范围内定义的,所以这可能是你的问题。之前的五个人已经给出了这个答案,但你看不到那个意识到他们在复制和删除的人。为什么还要加一个呢?调试注释是有效的,但它是一个注释,而不是一个答案。您在其他答案的基础上正确地阅读了整个问题和答案,难怪您有43.4k!。。谢谢
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