понимание карты JQuery - PullRequest
       2

понимание карты JQuery

2 голосов
/ 06 февраля 2012

Я нашел этот пример, который говорит:

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

Создает arr массив из 6 элементов. Однако я не понимаю, почему это не [[x,y],[x,y],[x,y]]

Мне нужно шаг за шагом знать, что только что произошло. Эта map функция кажется очень полезной, я бы не хотел ее использовать просто потому, что не понимаю ее поведение.

Ответы [ 3 ]

4 голосов
/ 06 февраля 2012

$.map выравнивает возвращенный массив:

Возвращенный массив будет сведен в результирующий массив.

Источник: http://api.jquery.com/jQuery.map/

2 голосов
/ 06 февраля 2012

Вы можете дважды обернуть возвращаемый массив, чтобы избежать сглаженного вывода.

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 .

.
0 голосов
/ 06 февраля 2012
$.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]

Вы можете проверить разницув ответ

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...