阵列诉诸

时间:2013-06-02 13:27:45

标签: javascript jquery arrays map

我有一个列表项目,其中一些缺失,例如,这里缺少第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')

1 个答案:

答案 0 :(得分:3)

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

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