这将在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