nodejs 遍历json数据_JavaScript、Nodejs 遍历目录生成 JSON 串

JavaScript、Nodejs 遍历目录生成 JSON 串需求:给定路径,取出所有文件目录与文件名,生成 JSON 数据。

如:

目录:

├─abbrev

├─ansi

│ ├─examples

│ │ ├─beep

│ │ ├─clear

│ │ └─progress

│ └─lib

├─balanced-match

├─base64-js

│ ├─bench

│ ├─lib

│ └─test

├─big-integer

返回 JSON 如下:

dirIndex = {

abbrev: 'abbrev',

ansi: {

example: {

beep: 'beep',

clear: 'clear',

progress: 'progress'

},

lib: 'lib'

}

balanced-match: 'balanced-match',

...

}

代码const path = require('path');

const fs = require('fs');

// 获取指定路径 path 下的,默认深度为 3 的目录 JSON

function getIndexByPath(dir, deep = 3) {

let dirDevide = dir.split('/');

let preDir = dirDevide.splice(0, dirDevide.length - 1).join('/');

let index = {};

getIndexOfPathByDeep(index, path.join(__dirname, preDir), dirDevide[0], deep + 1);

return index;

}

// 开始对指定 path 递归查找深度为 deep 深度

function getIndexOfPathByDeep(obj, dir, curDir, deep) {

let curPath = path.join(dir, curDir);

// 达到搜索深度,停止

if(deep) {

obj[curDir] = curDir;

if(fs.statSync(curPath).isDirectory()) {

obj[curDir] = {};

let lists = fs.readdirSync(curPath);

lists.forEach(list => getIndexOfPathByDeep(obj[curDir], curPath, list, deep - 1))

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值