我发现this示例说:
var arr=$.map([0,1,2],function(n){
return [n,n+1];
});
将使arr
成为6项数组。但是,我不明白为什么它不是[[x,y],[x,y],[x,y]]
我需要一步一步地知道刚刚发生的事情。这个map
函数看起来非常有用,我不想因为我不理解它的行为而不使用它。
答案 0 :(得分:4)
答案 1 :(得分:2)
您可以双重包装返回的数组以避免输出变平。
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 ];
});
对于不受支持的浏览器,您可以使用compatibility patch from MDN。
答案 2 :(得分:0)
$.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,2,3]
您可以查看回报中的差异