0

たとえば、次のように、いくつかが欠落しているリスト項目があります。

<ol>
   <li data-id='0'>Apple</li>
   <li data-id='1'>Banana</li>
   <li data-id='3'>Tea</li>
   <li data-id='4'>Biscuit</li>
</ol>

また、各リスト項目のデータを含むリスト項目の数と同じ長さの配列もあります (ここでも 3 番目の項目「c」がありません)。

var arr = ['a','b','d','e'];

これを新しい配列に再マップした後:

var ordered_array = jQuery('ol li').map(function() {
    return arr[jQuery(this).data('id')];
}).get();

 console.log(ordered_array);

私は得る:

["a", "b", "e"]

なぜそれは1つのアイテムを失うのですか?('d')

4

1 に答える 1

3

undefinedコールバックからornull値を返す場合、返される配列 ( docsmap() )にはその要素のエントリが含まれないためです。

この場合、data-id="4"for Biscuit、しかしar[4] === undefinedであるため、返される配列には含まれません。

于 2013-06-02T13:32:53.150 に答える