javascript - Lodash & Underscore "each"over localStorage 给出了意想不到的结果

标签 javascript underscore.js local-storage each lodash

在尝试将自定义 for in 循环切换为 underscorelodash 时,我发现有些奇怪循环。

JSBIN: http://jsbin.com/manerotoru/2/edit?html,js,console

window.localStorage.setItem("hello", "world")

console.log('-----underscore-----')

_.each(window.localStorage, function (value, key) {
  console.log(value);
  console.log(key);
});


console.log('-----custom-----')

function each (object, callback) {
  for (var key in object) {
    var value = object[key];
    callback(value, key);
  }
}

each(window.localStorage, function (value, key) {              
  console.log(value);
  console.log(key);
});

这是记录到控制台的内容。

-----lodash-----
undefined
0
-----custom-----
world
hello

并不是说 _.each 不会遍历对象,因为它在这里做得很好。

var data = {"hello": "world"}

_.each(data, function (value, key) {
  console.log(value);
  console.log(key);
});

为什么我不能使用任一库中的 _.each 来遍历 localStorage

最佳答案

这是一个已知问题,不会被修复。你可以找到the bug report on GitHub .

潜在的问题似乎是下划线的 _.each() 不能很好地处理具有 length 属性的对象。

错误报告的官方回应:

The final decision is that you should iterate localStorage yourself, and not rely on _.each.

关于javascript - Lodash & Underscore "each"over localStorage 给出了意想不到的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247932/

相关文章:

javascript - Firefox 4 新点击事件行为的问题

javascript - 通过相同的键组合多个数组

javascript - 在 JavaScript 中创建干净的、可继承的对象

Javascript 比较值 === +值

javascript - 如何在 localStorage javascript 中堆叠多个数组?

javascript - 页脚中的可折叠部分不会展开至全宽

javascript - FireFox 4 不再支持可滚动的 TBody - 解决方法?

javascript - 每当我发布新代码时如何从客户端清除本地存储

javascript - 使用 POST 请求获取集合?

sqlite - 从 phonegap 读取本地 sqlite 文件