JS 前端排序 数组指定项移动到最后

问题来源:模仿win10文件夹中按类型排序
文件夹在上,文件在下,并且点击按类型排序后,文件夹和文件会各自按首字母进行排序

/*** 数组指定元素移动到最后的位置* @param {*} arr 需要排序的数组* @param {*} sourceIndex 需要移动的元素的索引* @param {*} targetIndex 目标索引*/
function moveArray(arr, sourceIndex, targetIndex) {// splice 将目标元素替换并将原结果扔回来赋值给它arr[sourceIndex] = arr.splice(targetIndex, 1, arr[sourceIndex])[0];
}var arr = [{id: 0,name: "Rose",type: "dircetory",},{id: 1,name: "Robin",type: "file",},{id: 2,name: "Tom",type: "dircetory",},{id: 3,name: "Taide",type: "file",},{id: 4,name: "Danni",type: "dircetory",},
];// 索引数组(需要移动的元素索引数组)
var sourceIndexes = [];
arr.forEach((item, index) => {if (item.type == "file") {sourceIndexes.push(index);}
});// 遍历索引数组,移动元素
sourceIndexes.forEach((sourceIndex) => {moveArray(arr, sourceIndex, arr.length);
});// 过滤数组,去除 undefined 项
var result = arr.filter((item) => {return item !== undefined || !!item;
});
console.log(result);

输出结果

[{ id: 0, name: 'Rose', type: 'dircetory' },{ id: 2, name: 'Tom', type: 'dircetory' },{ id: 4, name: 'Danni', type: 'dircetory' },{ id: 1, name: 'Robin', type: 'file' },{ id: 3, name: 'Taide', type: 'file' }
]

JS 前端排序 数组指定项移动到最后相关推荐

  1. js tool 方法之删除数组指定项

    最近又开始写博文了,还是在自己的本地项目上做一些小的方法案例. 之前撸代码的时候总是遇到删除数组里某个元素的问题,JS没提供便捷的方法,只能自己写个循环处理,所幸自己写个方法,以后博客项目里要用到就不 ...

  2. JS之返回数组指定元素的slice

    作用:slice() 方法可从已有的数组中返回选定的元素 语法:arrayObject.slice(start,end) 参数1:必需.规定从何处开始选取.如果是负数,那么它规定从数组尾部开始算起的位 ...

  3. JS前端判断数组是几维数组

    用到了递归思路,一层一层去循环数组,下边是代码 <!DOCTYPE html> <html lang="en"> <head><meta ...

  4. JS 移除数组中指定索引项

    JS移除数组中的指定的索引的项: ////移除指定索引的对象Array.prototype.remove = function (dx) {if (isNaN(dx) || dx > this. ...

  5. js读取外部json指定字段值完整代码_前端工程化 剖析npm的包管理机制(完整版)...

    导读 现如今,前端开发的同学已经离不开 npm 这个包管理工具,其优秀的包版本管理机制承载了整个繁荣发展的NodeJS社区,理解其内部机制非常有利于加深我们对模块开发的理解.各项前端工程化的配置以加快 ...

  6. js获取对象数组中指定属性值对象_3分钟学会操作JavaScript内置对象,快来试试吧...

    1 - 内置对象 1.1 内置对象 JavaScript 中的对象分为3种:自定义对象 .内置对象. 浏览器对象. 前面两种对象是JS 基础 内容,属于 ECMAScript: 第三个浏览器对象属于 ...

  7. js删除数组指定的某个元素

    原文链接: http://caibaojian.com/js-splice-element.html 删除数组指定的某个元素 首先可以给js的数组对象定义一个函数,用于查找指定的元素在数组中的位置,即 ...

  8. js中的数组对象排序(方法sort()详细介绍)

    定义和用法 sort() 方法用于对数组的元素进行排序. 语法    arrayObject.sort(sortby) 参数sortby:可选.规定排序顺序.必须是函数. 返回值 对数组的引用.请注意 ...

  9. vue.js 删除指定元素_vue.js删除动态绑定的radio的指定项

    上图效果,动态添加绑定radio选项,然后也可以动态删除,右边编辑器删除,左边的视图也对应的删除. 视图代码 view: " " + "{{option.text}}&q ...

最新文章

  1. 它是谁?一个比 c3p0 快200倍的数据库连接池!
  2. 数据科学之基石:数据科学家必须掌握的10个统计学概念
  3. 转:SLAM算法解析:抓住视觉SLAM难点,了解技术发展大趋势
  4. 文本每行都应该换行——vi文件末尾自动换行,不会导致php输出空行
  5. 搞对象的时候走神儿了
  6. XML格式对象序列化(2)
  7. 面向对象--内部属性类型
  8. Ansible 入门案例
  9. JMeter 教程汇总链接
  10. php代码里怎么写html代码_菜鸟青铜变白银!Python 项目代码写完了,然后怎么打包和发布?...
  11. hive的一些调优参数
  12. 雅虎辉煌不再,紫色血液永存
  13. TCP/IP学习笔记(2)-数据链路层
  14. 如何保证Session值不丢失
  15. 【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
  16. STM8单片机的中断优先级
  17. Labwindows_cvi基于C语言程控矢量网络分析仪
  18. iOS高德地图去logo
  19. 淘宝C店双十一海选时间 淘宝C店双十一海选是什么时候开始
  20. 计算机课学生段密码,优课互联课堂学生端

热门文章

  1. php gui中文手册,git gui - [ Git中文开发手册 ] - 在线原生手册 - php中文网
  2. oracle manager 配置,Oracle Net Manager 基本配置
  3. python十点半游戏代码_十点半游戏完整代码及详细注释.py
  4. 2021年上半年软考网络工程师考试下午真题及答案解析
  5. macOS Unlocker3.0
  6. 网络规划设计师论文考察要点
  7. 动态sql之各种标签的使用以及详细配置
  8. 爬虫常用Xpath和CSS3选择器对比
  9. 大型网站架构系列:缓存在分布式系统中的应用(三)
  10. logback 常用配置详解appender