【问题标题】:Using for instead of jQuery each使用 for 而不是 jQuery each
【发布时间】:2015-01-02 18:19:07
【问题描述】:

我想使用 for 循环而不是 $.each。怎么样?

我的 $.each 代码如下:

$.ajax({
    type: "POST",
    url: 'get_units',
    data: { id : '1'},
    success: function (units) {
        $.each(units, function (index, val) { //I want change this line to for loop
            alert(index+'-'+val) // I want two result
        });
    },
    "error": function (x, y, z) {
        alert("An error has occured:\n" + x + "\n" + y + "\n" + z);
    }
});

【问题讨论】:

  • 使用for 循环有什么问题?
  • $.each 函数有什么问题?
  • @SKG 和$.each 增加了可能不必要的复杂性,因为一方面需要为每次迭代进行函数调用,另一方面可能会创建新的范围。因此,将$.each 更改为for 可能是一个可以理解的想法
  • 您可以在每个函数中传递第二个参数值作为范围值,以避免创建范围。 developer.mozilla.org/en/docs/Web/JavaScript/Reference/…

标签: javascript jquery ajax each


【解决方案1】:

如果你有对象,你可以使用for...in

var units = {
    'a': 'Hello',
    'b': 'World'
};

for (var prop in units) {
    console.log(prop);
    console.log(units[prop]);
}

如果你有数组,使用for:

var units = ['Hello', 'World'];

for (var i = 0, l = units.length; i < l; i++) {
    console.log(i);
    console.log(units[i]);
}

【讨论】:

  • 请注意:在for...in 循环中,我不会将其称为index,而是将其称为keyprop 或类似名称。因为index 更常见于与Array 一起使用,并表示它是0 .. n 范围内的数值
  • @t.niese 很好,完成;)
【解决方案2】:

试试这个

for(i = 0; i < units.length; i++) {
    alert(i+'-'+units[i]);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-19
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-24
    • 1970-01-01
    • 2014-10-19
    • 2012-06-08
    相关资源
    最近更新 更多