js中实现 1. 交换数组中 两个元素的位置. 2. 将一个元素向前 或者 向后 移动 n 个 位置

tech2024-04-05  55

在公司中业务中碰到的 一些需求

1.将数组中的一个元素 置顶操作

function changeToFirstLocation(arr,index){ return arr.unshift(arr.splice(index,1)[0]); // 或者 var tmp=arr[0]; arr[0]=arr[index]; arr[index]=tmp; }

交换数组中两个元素的位置 // 删除数组中的元素 并插入新的数值 将删除的元素组成一个数组返回splice(index,count,newValue); index 开始删除元素的下标 count 从当前下标 往后面 删除几个 newValue 替代删除位置的新元素

// 两个元素交换位置 function changeLocation1(arr,index1,index2){ arr[index1-1]=arr.splice(index2-1,1,arr[index1-1])[0]; return arr; }

3.位置移动 后面元素移动到某个位置 从那个位置开始后面的元素都往后面移动一位 index1 移动到 index2 将 index2的位置 占住

function changeLocation2(arr,index1,index2){ var left,middle,right; if(index1 == index2) { return arr; } middle=arr.splice(index1,1)[0]; // 判断是向前还是向后移动 if(index1<index2){ // 向后移动 left=arr.filter((item,index)=>{ return index<=index2; }); right=arr.filter((item,index)=>{ return index>index2; }) } else { left=arr.filter((item,index)=>{ return index<index2; }); right=arr.filter((item,index)=>{ return index>=index2; }) } return [...left,middle,...right]; }

关注我 持续更新前端知识 关注冲哥

最新回复(0)