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