是否有一个不自动展平的jQuery map实用程序?

cdl*_*ary 44 jquery functional-programming

我正在将一个二元组数组从一个域(日期)映射到另一个域(时间戳).不幸的是,它看起来像jQuery.map自动展平我返回的两元组,我没有看到do_not_flatten参数.

我是否遗漏了库中不会自动展平的其他内容?

附录:我认为我不应该使用Array.map,它不会自动展平,因为它是JavaScript 1.6.据我了解,jQuery应该抽象出我出于兼容性原因运行的JavaScript版本.

小智 64

我遇到了同样的问题; 事实证明你可以从$ .map回调中返回一个嵌套数组,它不会展平外部数组:

$.map([1, 2, 3], function(element, index) {
  return [ element + 1, element + 2 ];
});
=> [2, 3, 3, 4, 4, 5]
Run Code Online (Sandbox Code Playgroud)

鉴于:

$.map([1, 2, 3], function(element, index) {
  return [ [ element + 1, element + 2 ] ];
});
=> [[2, 3], [3, 4], [4, 5]]
Run Code Online (Sandbox Code Playgroud)

希望有所帮助!

  • 真的很整洁!但严重的是,不应该需要这样的黑客攻击.不管怎么说,还是要谢谢你! (11认同)
  • 我认为地图功能根本不应该平整其结果.我很少有理由想要这种行为.对于有人希望将结果弄平的情况,应该有一个单独的功能. (8认同)
  • 真的很难看,map函数应该接受一个布尔值或者某些东西来控制这种行为. (5认同)
  • jQuery开发人员说这是故意的:http://bugs.jquery.com/ticket/10541 (2认同)

evi*_*uin 0

我不太确定什么是“二元组”,也不太确定我从我查看的谷歌结果中得到了正确的结果。但是你看过jQuery.each吗?