jquery for循环而不是underscore.js _.each

时间:2014-08-24 03:47:19

标签: javascript jquery underscore.js

好吧,好吧,我不熟悉循环,所以这里就是..

我想循环这个_.each

 _.each(data, function (item) {
                            newData.push({
                                id: item.FormID,  //id part present in data
                                text: item.FormName  //string to be displayed
                            });
                        });

_。每个都是underscore.js库的函数。

我不想使用这个库,只需要普通的jquery或javascript。

我试过这样的..我知道错了。但已经尝试过但都失败了。

for ( var i = 0; i < data; i++ ) {
    newData.push({
        id: item.FormID,  //id part present in data
        text: item.FormName  //string to be displayed
    });

}

5 个答案:

答案 0 :(得分:2)

在jQuery中是一样的,

$.each(data, function(index, item) {
    newData.push({
        id: item.FormID, //id part present in data
        text: item.FormName //string to be displayed
    });
});

答案 1 :(得分:1)

i < data

应该是

i < data.length

假设数据是一个数组

答案 2 :(得分:1)

做这样的事情:

$.each(data, function (index,value) {
                        newData.push({
                            id: value.FormID,  //id part present in data
                            text: value.FormName  //string to be displayed
                        });
                    });

你也可以像这样使用for循环:

for ( var i = 0; i < data.length; i++ ) {
    newData.push({
       id: data[i].FormID,  //id part present in data
       text: data[i].FormName  //string to be displayed
     });

}

答案 3 :(得分:1)

JavaScript数组拥有自己的forEach methods

data.forEach(function(item) {
    newData.push({ id: item.FormId, text: item.FormName });
});

或者,既然您似乎正在将data数组转换为另一个数组,则可以使用map

var newData = data.map(function(item) {
    return {
        id: item.FormId,
        text: item.FormName
    };
});

如果newData已包含内容,则您可以使用concat附加map的结果:

var newData = [ ... ];
newData = newData.concat(data.map(function(item) {
    return {
        id: item.FormId,
        text: item.FormName
    };
}));

您甚至可以使用pushapply

newData.push.apply(newData, data.map(function(item) { ... }));

答案 4 :(得分:0)

jQuery不是我所说的 plain ,它本身已经是一个库,它是一个库,其中each的迭代器的参数是倒置,与普通javascript 相比。

除非您关心IE8,否则我建议您使用普通javascript 中提供的Array.prototype.forEach

data.forEach(function (item) {
    newData.push({
        id: item.FormID,  //id part present in data
        text: item.FormName  //string to be displayed
    });
});

(如果您关心IE8,可以使用polyfill from MDN