JS改变数组中某元素位置的函数
2012-10-25 21:17
260 查看
20121101更新:
atrl同学给出了一行代码的实现,很漂亮:
———————–
搞重构JS写得少了,jQuery很不熟,不知道有没有预设的这个方法,只好自己先写了个。
atrl同学给出了一行代码的实现,很漂亮:
[].splice.apply(arr, [].concat.apply([ toPos ,0], arr.splice(pos,1) ) );
———————–
搞重构JS写得少了,jQuery很不熟,不知道有没有预设的这个方法,只好自己先写了个。
function changeArrayItemPos(arr, pos, toPos){ //目标索引溢出修复下 toPos = Math.min(Math.max(0, toPos), arr.length - 1); //待换索引溢出或与目标索引相同,则不做处理 if(pos === toPos || pos < 0 || pos > arr.length - 1){ return [].concat(arr); } var _arr = [], after = pos > toPos; for(var i = 0, len = arr.length; i < len ; i++){ //待换索引直接pass if(i === pos){ continue; }else{ if(i === toPos){ //目标索引与待换索引前后位置有关系 if(after){ _arr.push(arr[pos]); _arr.push(arr[i]); }else{ _arr.push(arr[i]); _arr.push(arr[pos]); } }else{ _arr.push(arr[i]); } } } return _arr; }
相关文章推荐
- 不改变原数组,添加或删除一个元素(js)
- 在JS数组特定索引处指定位置插入元素
- js小练习:利用getElementsByTagName方法、for循环、this指针、数组实现对多个相同元素value值的改变
- js数组插入指定位置元素,删除指定位置元素,查找指定位置元素算法
- php数组函数序列之array_splice() - 在数组任意位置插入元素
- JS数组,一些对元素操作的函数
- js中获取同名的元素--使用getElementsByName()函数获得数组
- 写一个函数,参数为$n,生成一个数组,其元素为1~$n,各元素位置随机排列,不得重复
- php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
- js从数组中删除指定值(不是指定位置)的元素
- php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- 在JS数组特定索引处指定位置插入元素的技巧
- Js数组里删除指定的元素(不是指定的位置)
- js 给json添加新的字段,或者添加一组数据,在JS数组指定位置删除、插入、替换元素
- 在JS数组特定索引处指定位置插入元素的技巧
- C和指针之函数之在数组中找特定元素并返回指向该位置的指针
- php数组函数序列之prev() - 移动数组内部指针到上一个元素的位置,并返回该元素值
- js数组特定位置元素置空,非null和undefined,实现echarts现状图效果;谷歌格式化压缩js代码
- Js数组里删除指定的元素(不是指定的位置)
- js从数组中删除指定值(不是指定位置)的元素