【发布时间】:2016-06-10 09:39:57
【问题描述】:
var items = [];
//angular.forEach(localStorage, function(value, key){
// items.push({
// 'id' : key,
// 'text' : value
// });
// console.log(value);
//});
for(var key in localStorage){
if(localStorage.hasOwnProperty(key)){
//console.log(localStorage[row]);
items.push({
'id' : key,
'text' : localStorage[key]
});
}
}
return items;
注释代码返回两个元素的数组,而简单的“for in”循环返回localStorage对象的所有值(实际上是三个项目)。
我不明白为什么 angular.forEach 不迭代对象中的最后一项?
根据文档,一切都应该没问题 https://docs.angularjs.org/api/ng/function/angular.forEach
【问题讨论】:
-
localStorage.hasOwnProperty(key)是否对所有元素都返回 true?你能把 jsfiddle 或 plunkr 放在一起吗? -
实际上代码运行良好。 jsfiddle.net/ebinmanuval/jq6e04qacheckout 是否还有其他问题
-
这里是我的 localStorage i.imgur.com/j7GocsN.jpg 这里我安慰了迭代的键 i.imgur.com/BbgQqGp.jpg 这里是控制台 i.imgur.com/j90YyzH.jpg
-
OP 是对的,只有当 localStorage 有整数作为键时,它才会迭代 2。 https://jsfiddle.net/hru2k47u/
标签: javascript angularjs loops foreach