有没有一种简单的方法可以从数组中获取某个元素并将该元素放到最后一个位置?

时间:2019-04-17 09:52:33

标签: javascript arrays sorting indexing

我正在使用Web应用程序,因此需要一个数组。该数组包含对象。我需要使用for循环检查该数组中的所有元素,如果其中一个满足条件,请将该元素用作我需要对该元素执行的操作,然后将其放置在数组中的最后一个位置。像这样:

let myArray = [{obj1}, {obj2}, {obj3}, {obj4}, {obj5}];

例如,如果{obj3}满足所有条件,我需要将其放置在最后,就像这样,因此数组如下所示:

myArray = [{obj1}, {obj2}, {obj4}, {obj5}, {obj3}];

{obj1}满足所有条件:

myArray = [{obj2}, {obj4}, {obj5}, {obj3}, {obj1}];

3 个答案:

答案 0 :(得分:1)

有了索引后,您可以使用Array#spliceArray#push来获取项目并将项目推入数组。

array.push(...array.splice(index, 1))

答案 1 :(得分:0)

您可以filter除去该特定值以外的其他值,然后将该值放在末尾,

此示例正在考虑数组中所有值都是唯一的

let arr = [0,1,2,3,4,5,6,7,8,9]

let findAndPlaceAtLast = (value) =>{
  let temp = arr.filter(e=> e!=value)
  return [...temp,value]
}


console.log(findAndPlaceAtLast(4))
console.log(findAndPlaceAtLast(2))

如果有多个匹配条件的值,则根据所需的输出,您可以选择一个索引(或什至不止一个)来删除过滤器数组,并以与上述示例类似的方式在末尾添加值< / p>

答案 2 :(得分:0)

您可以尝试以下示例

arr = [1,2,3,4,5,6];
console.log(arr);

ele = arr[1] //save match element in a variable
arr.splice(1, 1); //splice array and remove that element
console.log(arr);
arr.push(ele); // push element in array again
console.log(arr);