我有一个列表项目,其中一些缺失,例如,这里缺少第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')
答案 0 :(得分:3)
因为如果从undefined
回调中返回null
或map()
值,则返回的数组(docs)中不包含该元素的条目。
在这种情况下,data-id="4"
为Biscuit
,但ar[4] === undefined
,因此它不包含在返回的数组中。