這將在Javascript(jQuery)中實現,但我認爲該方法可以用於任何語言。如何排序數組,但排除某些元素(要保留在陣列中的相同位置)
我有一個項目的數組,我需要執行排序。 但是數組中有一些項必須保持在相同的位置(相同的索引)。
有問題的數組是從<li>
元素的列表構建的,我將附加到列表項的.data()值作爲要排序的值。
這裏最好的方法是什麼?
<ul id="fruit">
<li class="stay">bananas</li>
<li>oranges</li>
<li>pears</li>
<li>apples</li>
<li class="stay">grapes</li>
<li>pineapples</li>
</ul>
<script type="text/javascript">
var sugarcontent = new Array('32','21','11','45','8','99');
$('#fruit li').each(function(i,e){
$(this).data('sugar',sugarcontent[i]);
})
</script>
我想結果如下排序列表...
<ul id="fruit">
<li class="stay">bananas</li> <!-- score = 32 -->
<li>pineapples</li> <!-- score = 99 -->
<li>apples</li> <!-- score = 45 -->
<li>oranges</li> <!-- score = 21 -->
<li class="stay">grapes</li> <!-- score = 8 -->
<li>pears</li> <!-- score = 11 -->
</ul>
謝謝!
這是最類似於我最終結果的代碼,所以我標記爲正確 - 我確定由petersendidit提供的解決方案也很好(雖然它未經測試)。謝謝! – calumbrodie 2010-03-30 10:47:27