【问题标题】:Iterating Over An Array in JavaScript在 JavaScript 中迭代一个数组
【发布时间】:2011-07-07 05:49:15
【问题描述】:

我有一个数组并像这样填充它的值:

$('#list input:checked').each(function() {
  deleteRecordIdsStr.push($(this).attr('name'));
});

我将它用于我的数组:

deleteRecordIdsStr = deleteRecordIdsStr.join("-");

所以我有一个这样的数组。让我们接受我一开始向它推送了 10、20、30,然后我加入了。

如何遍历该数组并再次获得 10、20 和 30?

【问题讨论】:

    标签: javascript jquery arrays iteration


    【解决方案1】:
    var ids = deleteRecordIdsStr.split("-");
    

    split 是一个创建数组的 String 方法。

    迭代将是:

    for (var i = 0, l = ids.length; i <l; i++){
    
      //something with ids[i]
    }
    

    【讨论】:

    • 我同意并更改了示例
    • 你能删除第二个表单(for...in)吗?这是一个不好的例子; for..in 应该用于遍历对象的键,而不是遍历数组的元素。见stackoverflow.com/questions/500504/…
    【解决方案2】:

    “标准”方法是使用forloop:

    for (var i = 0, len = deleteRecordIdsStr.length; i < len; i++) {
      alert(deleteRecordIdsStr[i]);
    }
    

    但是 jQuery 还为数组(和类似数组的对象)提供了each 方法:

    $.each(deleteRecordIdsStr, function(item, index) {
       alert(item);
    });
    

    【讨论】:

    • 你能举个例子吗(例如,列表中的警报项目?)
    【解决方案3】:

    您可以使用 jQuery 的每个函数来轻松地遍历它们。

    $.each(deleteRecordIdsStr.split('-'), function() {
         // this = 10, 20, 30 etc.
    });
    

    http://api.jquery.com/jQuery.each/

    【讨论】:

    • @Raynos 在我看来它变得更干净了,因为我们使用的是 jQuery,所以没有问题(见标签)。但当然它与 for 循环相同。我猜这是一个品味问题。
    • 我只是看不出有什么理由在 Array 上抽象出 for 循环。诚然,这是一种有效的风格选择。只是感觉非常不必要。特别是当他关心顺序时,您不应该使用无序的每个循环。
    • @Raynos - 你错过了投票的要点。根据其页面,使用了否决票Whenever you encounter an egregiously sloppy, no-effort-expended post, or an answer that is clearly and perhaps dangerously incorrect, vote it down!您已经承认这是一个风格问题。用反对票冷静下来。
    • @Jeff 我确实意识到我事后很严厉,但投票已锁定。
    猜你喜欢
    • 2011-02-17
    • 2013-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 2015-04-18
    • 2018-08-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多