【问题标题】:What's the right technique for accessing an object's data in JavaScript?在 JavaScript 中访问对象数据的正确技术是什么?
【发布时间】:2010-08-27 17:49:38
【问题描述】:

我有这个对象:

var count = {
table: 15,
people: 34,
places_details: 85,
story_1: 21,
story_2: 6,
story_3: 11,
}

这个数组:

 var categories = ['table', 'people', 'places_details', 'story_1', 'story_2', 'story_3']

还有这个功能:

function preloadThumbs()
{
var j=0;
for (j=0; j<categories.length; j++)
    {
    var k=1;
    for (k=1; k<=count[categories[j]]; k++)
        {
        $('#preload').append('<img src="graphics/thumbs/'+categories[j]+'/'+k+'.jpg" />');
        }
    }
}

...它以categories[j] 的名称遍历每个文件夹,并将所有图像加载到隐藏的&lt;div&gt;
有什么方法可以将数据写成单个对象并更改相应的函数以正确解释它?

【问题讨论】:

    标签: javascript jquery object


    【解决方案1】:
    var count = {
      table: 15,
      people: 34,
      places_details: 85,
      story_1: 21,
      story_2: 6,
      story_3: 11,
    }
    
    function preloadThumbs() {
      var preload = $("#preload");
      for (var kind in count) {
        for (var i = 1; i <= count[kind]; i++) {
          preload.append('<img src="graphics/thumbs/' + kind + '/' + i + '.jpg" />');
        }
      }
    }
    

    这是一种将所有数据存储在一个对象中的方法。我不知道你想要一个二维数组做什么。

    【讨论】:

    • 修改问题以反映这一点。谢谢。是否有理由将 jQuery 对象存储在变量中?
    • A(可能的)性能提升,因为您不会创建 Jquery 对象并找到 #preload 元素 172 次。
    【解决方案2】:

    您可以直接执行以下操作:

    for (var i in count) {
        var a = i; // a would be "table"
        var b = count[i]; //b would be 15.
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 2012-01-19
      • 1970-01-01
      • 2011-10-10
      • 2014-05-14
      • 1970-01-01
      相关资源
      最近更新 更多