JavaScript 将数组中的项移到前面

2022-08-30 04:27:38

我想检查数组是否包含 .如果是这样,我想将 移动到数组的前面。"role""role"

var data= ["email","role","type","name"];
if ("role" in data) data.remove(data.indexOf("role")); data.unshift("role")
data;

在这里,我得到了结果:

["role", "email", "role", "type", "name"]

我该如何解决这个问题?


答案 1

您可以对数组进行排序,并指定该值位于所有其他值之前,并且所有其他值都相等:"role"

var first = "role";
data.sort(function(x,y){ return x == first ? -1 : y == first ? 1 : 0; });

演示:http://jsfiddle.net/Guffa/7ST24/


答案 2

在我看来,ES6中最干净的解决方案:

let data = ["email","role","type","name"];
data = data.filter(item => item !== "role");
data.unshift("role");