[‘小明’,’小红’,’小强’,’张三’]在排队当叫到名字的人排到队伍前面,比如叫到了‘小强’,现在的排队顺序为[’小强’,‘小明’,’小红’,’张三’]

问题遇到的现象和发生背景 [‘小明’,’小红’,’小强’,’张三’]在排队当叫到名字的人排到队伍前面,比如叫到了‘小强’,现在的排队顺序为[’小强’,‘小明’,’小红’,’张三’]用js怎么实现

let stu = ['小明','小红','小强','张三'];
function aa(arr,str){
    let i = arr.indexOf(str);
    if( i !== -1 ){
        arr.unshift(...arr.splice(i,1))
        return arr
    }else{
        return "不存在"
    }
}


console.log(aa(stu,"小强")) //["小强","小明","小红","张三"]
console.log(aa(stu,"小红")) // ["小红","小强","小明","张三"]
console.log(aa(stu,"小")) // 不存在

就是把 小强 移动到 数组第一个 。


const arr = ['小明','小红','小强','张三']
function sort(arr,value){
  arr.splice(arr.findIndex(item=>item === value),1)
  arr.unshift(value)
  return arr;
}
console.info(sort(arr,'小强'))

img

let arr = ["小强", "小明", "小红", "张三"];
const index = arr.indexOf("小红"); //获取为小红的索引值
const obj = arr[0]; //添加中间变量进行交换位置
arr.splice(index,1);
let newArr = [obj,...arr];
console.log("newArr : ", newArr );


var list = ['小明','小红','小强','张三']
Array.from(new Set(['小强', ...list]))

// 输出 ["小强", "小明", "小红", "张三"]

function paixu(name){
var arr = ["小强", "小明", "小红", "张三"];
var arr2=[]; //排序后的新数组

const index = arr.indexOf(name); //获取为小红的索引值
arr2[0]=arr[index]; //设置叫到的人员初始位置
var vindex=1; //默认坐标值    
for(var i=0;i<arr.length;i++){
     
     if(i!=index){ //排除 被叫到号的人员
       arr2[vindex]= arr[i]; //追加如新数组
       vindex++; //默认坐标累加
     }
    
}

return arr2;

}

console.log(paixu('小红')); // ["小红", "小强", "小明", "张三"]