0

我有一个列表项,其中一些项丢失了,例如,这里缺少第 3 个:

<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"]

为什么会丢失一件物品?('d')

4

1 回答 1

3

因为如果您从回调中返回一个undefinedor值,则返回的数组 ( docs )中不包含该元素的条目。nullmap()

在这种情况下,data-id="4"for Biscuit, but ar[4] === undefined,因此它不包含在返回的数组中。

于 2013-06-02T13:32:53.150 回答