(ES6)数据处理常用工具方法收集(更新状态: on)
2024-09-01 07:18:32
1. 扁平数组转成tree结构(来源: StackOverflow的印度老哥写的)
// Data Set
// One top level comment
var comments = [{
id: 1,
parent_id: null
}, {
id: 2,
parent_id: 1
}, {
id: 3,
parent_id: 1
}, {
id: 4,
parent_id: 2
}, {
id: 5,
parent_id: 4
}]; const nest = (items, id = null, link = 'parent_id') =>
items
.filter(item => item[link] === id)
.map(item => ({ ...item, children: nest(items, item.id) })); nest(comments);
2. 二路归并
// divide array
function divide(p, r) {
return Math.floor((p + r) / 2);
} // merge array
function merge(A, p, q, r) {
const A1 = A.slice(p, q);
const A2 = A.slice(q, r);
A1.push(Number.MAX_SAFE_INTEGER);
A2.push(Number.MAX_SAFE_INTEGER);
for (let i = p, j = 0, k = 0; i < r; i++) {
if (A1[j] < A2[k]) {
A[i] = A1[j];
j++;
} else {
A[i] = A2[k];
k++;
}
}
} // main method
function merge_sort(A, p = 0, r) {
r = r || A.length;
if (r - p === 1) {
return;
}
const q = divide(p, r);
console.log(q)
merge_sort(A, p, q);
merge_sort(A, q, r);
merge(A, p, q, r); return A;
}
最新文章
- Cloud9:解决ThinkPHP在C9上运行时连接数据库时报错";No such file or directory";的问题
- 【转】升级Xcode6.3插件失效解决办法
- MySQL的数据库引擎
- 正则表达式从右往左进行匹配(Regex)
- JBoss7 局域网无法访问 解决方法
- ubuntu 下编译安装 mysql php nginx 及常见错误 (持续添加)
- 练习2 H题 - 求数列的和
- 探索 ConcurrentHashMap 高并发性的实现机制
- 奥酷流媒体服务系统AMS5.0
- Centos7数据实时同步
- java34
- js封装插件
- windows下 python2 和python3 共存
- 20155318 《网络攻防》Exp3 免杀原理与实践
- openfire 用户名+密码 配置
- 机器学习(5): K-means 算法
- cocos2d-x 2.2 创建项目
- C++中的友元函数的总结
- 使用DBMS_SCHEDULER包管理计划任务
- Python to list users in AWS
热门文章
- 【bzoj1026】[SCOI2009]windy数
- jdbcTemplate进行CRUD,查询结果转json
- (转载)Kaggle_Titanic生存预测 -- 详细流程吐血梳理
- [LeetCode]-DataBase-Department Top Three Salaries
- 20175308 2018-2019-2 实验四 《Android开发基础》实验报告
- 利用Lucene.net搜索引擎进行多条件搜索的做法
- 一、基础篇--1.1Java基础-Exception、Error、RuntimeException与一般异常有何异同
- Failed to find data source: kafka
- WINDOWS API 大全(二)
- IE浏览器中图片路径正确<; img ... />;标签不显示图片