如何在Javascript中迭代List对象?它包含多个值。
List <controllerclass> obj = dao.listimpl();
我试过了:
for (index = 0; index < obj .length; ++index) {
console.log(obj [index]);
}
答案 0 :(得分:0)
对象没有像数组一样的长度属性。 请使用以下代码进行迭代
for (var key in obj) {
if (obj.hasOwnProperty(key)){
alert("property "+key+ " is " + obj[key] );
}
}
希望这能解决你的问题。
答案 1 :(得分:0)
首先List <controllerclass> obj = dao.listimpl();
这是您粘贴的java代码,尝试粘贴您尝试迭代的确切对象。
虽然我建议使用非常轻量级的JavaScript库Loadash,这非常方便,当你处理数组/对象并循环遍历这些项目和更多的util方法时。
_.forOwn(obj, function(value, key) { } );
迭代对象的自己的可枚举字符串键控属性,并为每个属性调用iteratee。使用三个参数调用iteratee:(value,key,object)。 Iteratee函数可以通过显式返回false
来提前退出迭代答案 2 :(得分:0)
使用Iterators in Javascript is new to ES6循环并在下面解释。
MDN Iterators and generators - 解释说,在Javascript中,迭代器是一个只有next()方法的数据对象。从Iterator.next()返回的结果有一个next()方法,done和value属性。下面使用Javascript Set对象显示一个示例。
let aCollection = new Set(['item1', 'item2', 'item3']);
let it = aCollection[Symbol.iterator]();
console.log('iterator is', it)
console.log('it.done - is not meaningful', it.done); // notice that it.done is not defined!
let itLoop = it.next()
console.log('it.next()', itLoop);
console.log('it.next().value', itLoop.value);
console.log('it.next().done', itLoop.done);
以上示例代码的输出是:
iterator is SetIterator { 'item1', 'item2', 'item3' }
it.done - is not meaningful undefined
it.next() { value: 'item1', done: false }
it.next().value item1
it.next().done false
Set.prototype@@iterator - 解释如何使用Set迭代器。令我困惑的是为什么示例没有包含循环,所以我在下面提供示例。
使用迭代器循环的最简单方法是使用描述here in MDN的for(收集项)语法。循环的更完整描述是covered very well here。
for(let item of aCollection){
console.log('for...of returns ', item);
}
接下来是使用迭代器的for循环。
for(let it = aCollection[Symbol.iterator](), loop = it.next(); ! loop.done; loop = it.next()){
console.log('for(;;) ', loop.value);
}
接下来是使用迭代器的while循环:
let it = aCollection[Symbol.iterator]();
let loop = it.next();
while (! loop.done){
console.log('while loop ', loop.value);
loop = it.next();
}
希望这有助于某人。完整的可运行示例位于https://jsfiddle.net/PatS2265/y5a4hvb7/4/。没有HTML或CSS,只有Javascript console.log输出,所以打开浏览器控制台窗口看输出。