我必须在JSON数组中循环以获取node
中的一些信息,但我只知道如何在jQuery中使用$.each()
。所以我想知道node.js中是否有$.each
jQuery函数的替代方法?
答案 0 :(得分:18)
您可以使用此
for (var name in myobject) {
console.log(name + ": " + myobject[name]);
}
myobject
可能是您的JSON数据
答案 1 :(得分:15)
您应该使用本机for ( key in obj )
迭代方法:
for ( var key in yourJSONObject ) {
if ( Object.prototype.hasOwnProperty.call(yourJSONObject, key) ) {
// do something
// `key` is obviously the key
// `yourJSONObject[key]` will give you the value
}
}
如果您正在处理数组,只需使用常规for
循环:
for ( var i = 0, l = yourArray.length; i < l; i++ ) {
// do something
// `i` will contain the index
// `yourArray[i]` will have the value
}
或者,您可以使用数组的原生forEach
方法which is a tad slower,但更简洁:
yourArray.forEach(function (value, index) {
// Do something
// Use the arguments supplied. I don't think they need any explanation...
});
答案 2 :(得分:4)
在nodejs中,我发现Array.forEach(callback)
最能满足我的需求。它就像jQuery一样工作:
myItems.forEach(function(item) {
console.log(item.id);
});
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/forEach
答案 3 :(得分:1)
jQuery只是javascript,你可以自己做循环。
我不知道你正在循环的JSON数组的结构,但你可以使用for..in方法来获取对象的每个属性。
所以你会做类似的事情:
for( var i = 0; len = jsonArray.length; i < len; i++) {
for(var prop in jsonArray[i]) {
//do something with jsonArray[i][prop], you can filter the prototype properties with hasOwnProperty
}
}
此外,您可以使用Array
提供的forEach方法,其工作方式与jQuerys .each()