【发布时间】:2011-08-07 16:32:27
【问题描述】:
我有一个这样的数组:
[{flag: true, other: 1},
{flag: true, other: 2},
{flag: false, other: 3},
{flag: true, other: 4},
{flag: true, other: 5},
{flag: true, other: 6},
{flag: false, other: 7}]
我想要这个:
[{flag: false, other: 3},
{flag: false, other: 7},
{flag: true, other: 1},
{flag: true, other: 2},
{flag: true, other: 4},
{flag: true, other: 5},
{flag: true, other: 6}]
基本上,我希望如果array[2].flag === false(或我选择的任何其他值)匹配元素首先放置在数组中,但在之前的匹配元素之后。
不匹配的元素保持原来的顺序。
出现的顺序很重要。
如何在 JavaScript 中做到最好?
【问题讨论】:
-
flag和false的元素的相对顺序如何? -
@amn:它们在数组中“加前缀”的顺序应该是它们在原始数组中遇到的顺序。
-
@amn:问题指出不符合条件的元素保持与最初相同的顺序,我认为它也应该适用于符合条件的元素。
-
@Guffa 是的,该问题已被编辑以解决我的有效问题 :-) 但同时也添加了很多好的答案,所以我退休了......
标签: javascript arrays sorting