Javascript 根据条件将数组中的项获取到第一个位置

Javascript 根据条件将数组中的项获取到第一个位置,javascript,Javascript,嘿,我有以下数组: var ar = [{id: "F"}, {id: "G"}, {id: "Z"}, {id: "ZZ"}] 我想将id等于ZZ的那个移动到数组中的第一个位置。 我知道如何使用几个不同的函数来实现它,但我想知道是否有一个优雅的解决方案(lodash,…) var-ar=[{ id:“F” }, { id:“G” }, { id:“Z” }, { id:“ZZ” }]; ar.sort(功能(a、b){ 如果(a.id==“ZZ”){ 返回-1; } 如果(b.id==“ZZ

嘿,我有以下数组:

var ar = [{id: "F"}, {id: "G"}, {id: "Z"}, {id: "ZZ"}]
我想将id等于
ZZ
的那个移动到数组中的第一个位置。 我知道如何使用几个不同的函数来实现它,但我想知道是否有一个优雅的解决方案(lodash,…)

var-ar=[{
id:“F”
}, {
id:“G”
}, {
id:“Z”
}, {
id:“ZZ”
}];
ar.sort(功能(a、b){
如果(a.id==“ZZ”){
返回-1;
}
如果(b.id==“ZZ”){
返回1;
}
返回0;
});

控制台日志(ar)
您可以使用
unshift()
添加到数组的开头,使用
splice()
findIndex()
按id获取对象

var arr=[{id:F},{id:G},{id:Z},{id:ZZ}]
arr.unshift(arr.splice(arr.findIndex(e=>e.id==“ZZ”),1)[0])

console.log(arr)
你能用几个函数显示非优雅的版本吗?\ u.find/delete/\ u.merge你可以参考下面的帖子。相反,但应该有帮助:我以类似的方式回答了一篇帖子:
Array#sort
不能保证是稳定的,因此这可能会导致除
ZZ
之外的所有元素从它们开始的位置处于一个全新的顺序。是的,只是为了匹配问题中的“优雅”一词。:)@JLRishe@blackmiaool我不认为一个解决方案可能会产生“优雅”的错误结果。@ JLISHY,那些优雅的ES6代码甚至不能运行在一些旧浏览器中。