Javascript 如何将多个元素移动到阵列的底部?

Javascript 如何将多个元素移动到阵列的底部?,javascript,arrays,sorting,Javascript,Arrays,Sorting,我有一个函数,它接受数组和字符串作为参数。如果字符串出现在函数中并且确实移动到数组的第一个位置,则任务是chceck function moveToFirstPlace(['pizza', 'Pasta', 'Burger', 'PiZZa', 'pizzA'],'pizza') 在本例中,所有比萨饼都必须移动到数组的底部,而不考虑大写或小写字母。一种方法是对数组应用过滤器,一次识别匹配项,一次识别非匹配项。然后将两个结果连接起来: 函数moveToFirstPlace(arr,str){

我有一个函数,它接受数组和字符串作为参数。如果字符串出现在函数中并且确实移动到数组的第一个位置,则任务是chceck

function moveToFirstPlace(['pizza', 'Pasta', 'Burger', 'PiZZa', 'pizzA'],'pizza')

在本例中,所有比萨饼都必须移动到数组的底部,而不考虑大写或小写字母。

一种方法是对数组应用
过滤器,一次识别匹配项,一次识别非匹配项。然后将两个结果连接起来:

函数moveToFirstPlace(arr,str){
str=str.toLowerCase();
const matches=arr.filter(elem=>elem.toLowerCase()==str);
const misses=arr.filter(elem=>elem.toLowerCase()!==str);
返回匹配项。concat(未命中);
}
var arr=移动到第一个位置(['pizza'、'意大利面'、'Burger'、'pizza'、'pizza');

控制台日志(arr)
您可以使用
push
unshift
以及
toLowerCase()
来构建新数组

功能移动到第一个位置(项目、键){
让结果=[]
items.forEach(itm=>{
itm.toLowerCase()==key.toLowerCase()?result.unshift(itm):result.push(itm)
})
返回结果
}

log(moveToFirstPlace(['pizza'、'意大利面'、'Burger'、'pizza'、'pizza'))
您可以对数组排序并检查值,然后将这些值移到顶部

函数moveToFirstPlace(数组,值){
返回array.sort((a,b)=>(b.toLowerCase()==value)-(a.toLowerCase()==value));
}

log(moveToFirstPlace(['pizza'、'意大利面'、'Burger'、'pizza'、'pizza'))如果效率很重要,您可以通过一个
O(n)
pass(不计算
toLowerCase
)从数组的每一端运行索引,并在右索引找到pizza而左索引找到非pizza时交换:

函数移动到第一个位置(arr,键){
设i=0,j=arr.length-1
而(iconsole.log(arr)
请添加您的功能。