【问题标题】:Javascript/jQuery array of objects? [closed]Javascript/jQuery 对象数组? [关闭]
【发布时间】:2012-07-25 01:58:30
【问题描述】:

是否可以创建对象数组?我想知道这一点,因为我正在开发一个 iPad 网站,该网站有一堆需要在 iPad 上滚动的字段。

当然,iPad/Safari 不得不让事情变得困难,而不是使用overflow-x/y 选项来允许滚动条。所以,我希望做的是创建一个 iScroll 对象数组,因为需要创建大量的东西,我宁愿不这样做:

var myScroll = new iScroll();
var myScroll = new iScroll();

等等。

我希望做的是有某种循环,例如:

var arrayOfObjects=new Array();
for(var i=0; i < numFields; i++)
{
   var temp = new iScroll();
   arrayOfObjects.push(temp);
}

那么,这样的事情可行吗?

【问题讨论】:

  • 是的,这是可能的,您的代码应该可以实现这一目标

标签: javascript jquery oop javascript-objects iscroll


【解决方案1】:

我认为您发布的代码可以正常工作。一些吹毛求疵:

var arrayOfObjects = []; // use this syntax instead of "new array"
for (var i = 0; i < numFields; i++) {
   arrayOfObjects.push(new iScroll()); // no reason for a temp var
}

【讨论】:

    【解决方案2】:

    是的

    var arrayOfObjects=new Array();
    for(var i=0; i < 10; i++)
    {
       var temp = new Object();
       arrayOfObjects.push(temp);
    }
    

    上面的代码产生:[Object, Object, Object, ... ] for the value of arrayOfObjects

    【讨论】:

    • 太棒了!我希望它会起作用,但我不确定。
    • 所以这个答案只是对 OP 代码的重申,但使用 Object 而不是 iScroll?
    • 测试脚本的一个好方法是在 Chrome 中按 Ctrl+Shift+J 并将代码粘贴到控制台窗口中。这是一个方便的 JS REPL。至少我是这样做的。
    • @nnnnnn 是的,我假设 iScroll 是一个对象,但没有 iScroll 的实现,我只是使用 Object 作为替代品。
    【解决方案3】:

    你想要的,可以通过jQuery.map()这样实现:

    var arrayObjects = $.map(Array(numFields), function(){ return new iScroll(); } );
    

    【讨论】:

    • 在这里我在想(开玩笑地)其他答案中没有足够的 jQuery。 +1 不过,我以前没想过用.map() 来做那种事情。
    【解决方案4】:

    是的,就我而言,你可以做到这一点。

    我通常会说:

    var myArray = []
    var myArray[0] = new iScroll();
    var myArray[1] = new iScroll();
    var myArray[2] = new iScroll();
    var myArray[3] = new iScroll();
    

    但是在循环中执行它应该工作相同:)

    【讨论】:

    • 你可以说var myArray = [new iScroll(),new iScroll(),new iScroll(),new iScroll()]
    • 是的,很好,只是想保持简单,虽然我会更新:)
    • 我认为 OP 不需要这种简化,因为他或她在没有我们帮助的情况下为循环实现提出了正确的语法。 (特别是当你有三个或更多元素时,循环实际上是更少的代码行......)
    猜你喜欢
    • 2017-12-05
    • 2022-06-15
    • 1970-01-01
    • 2022-07-13
    • 2017-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多