gpt4 book ai didi

javascript - 为什么 jQuery Map 会自动展平返回的数组?

转载 作者:行者123 更新时间:2023-12-01 05:48:47 26 4
gpt4 key购买 nike

我是 javascript 和 jQuery 的新手。我使用 Scala 和 Python 等支持列表理解和 Map 函数的语言,因此我尝试了 jQuery 中的 Map 函数($.map(array, func))。

我认为Map函数的一个基本规则是输出的长度应该与输入的长度相同。然而,当我尝试这个时:

$.map([1,2,3], function(e){return [1,2,3]})

我得到

[1, 2, 3, 1, 2, 3, 1, 2, 3]

而不是

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

这对我来说似乎很奇怪。

有人能解释一下吗?谢谢。

最佳答案

查看jQuery.map 2.1.1的代码,实际上有一条指令来压平返回的数组。

    // Flatten any nested arrays
return concat.apply( [], ret );

结果就是这样。jQuery 文档也提到了这一点:

 A returned array will be flattened into the resulting array.

但是,没有解释为什么要执行这种扁平化。

顺便说一句,这与 webkit 上的 ECMAScript 5 map 的行为产生了显着差异,其中

[1,2,3].map(function(e){return [1,2,3]})

返回

[[1, 2, 3], [1, 2, 3], [1, 2, 3]]

浏览器支持 ECMAScript 5 here总体来说对 Array.prototype.map 的支持非常好

关于javascript - 为什么 jQuery Map 会自动展平返回的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24301339/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com