理解jQuery地图

understanding jQuery map

本文关键字:地图 jQuery 理解      更新时间:2023-09-26

我发现这个例子说:

var arr=$.map([0,1,2],function(n){
    return [n,n+1];
});

将使arr成为一个6项数组。然而,我不明白为什么它不是[[x,y],[x,y],[x,y]]

我需要一步一步地知道刚刚发生了什么。这个map函数似乎非常有用,我不愿意因为不了解它的行为而不使用它。

$.map使返回的数组变平:

返回的数组将被展平为结果数组。

来源:http://api.jquery.com/jQuery.map/

您可以对返回的Array进行双换行,以避免扁平输出。

var arr=$.map([0,1,2],function(n){
     //    v--------------v----- flattened
    return [ [ n, n + 1 ] ];
     //      ^----------^------- inserted
});
arr;  // [[0,1],[1,2],[2,3]]

IMO,您最好使用标准的.map()函数,而不是jQuery的非标准函数。

var arr=[0,1,2].map(function(n){
    return [ n, n + 1 ];
});

对于不受支持的浏览器,可以使用MDN的兼容性修补程序。

$.map( [0,1,2], function(n){
   return n + 4;
 });

结果:[4,5,6]

$.map( [0,1,2], function(n){
   return [ n, n + 1 ];
 });

结果:[0,1,1,2,3]

您可以检查返回中的差异