gpt4 book ai didi

javascript - JS : Put elements to array beginning on condition

转载 作者:行者123 更新时间:2023-11-30 08:03:18 26 4
gpt4 key购买 nike

我有一个像这样的数组:

[
{id: 5, attr: 99},
{id: 7, attr: null},
{id: 2, attr: 8},
{id: 9, attr: 3},
{id: 4, attr: null}
]

在不改变数组中其他元素顺序的情况下,将所有带有 attr === null 的对象放在数组开头的最有效方法是什么? (例如,我需要 ID 按以下顺序排列:7、4、5、2、9(7 和 4 的顺序无关紧要,但 5、2、9 的顺序绝不能改变。)

用于测试代码的简单 fiddle :http://jsfiddle.net/8GEPC/

最佳答案

可以使用需要两个循环或一个 while 循环的内置过滤器方法来查找元素并删除它们。

var x = [
{id: 5, attr: 99},
{id: 7, attr: null},
{id: 2, attr: 8},
{id: 9, attr: 3},
{id: 4, attr: null}
];

var temp = [];
for(var i = x.length-1;i>=0;i--){
if (x[i].attr===null) { //if we have a null
temp.unshift(x.splice(i,1)[0]); //remove the element from org and add to temp
}
}
x = temp.concat(x); //add the original to the temp to maintain the order

关于javascript - JS : Put elements to array beginning on condition,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22765756/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com