json格式数据处理

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="viewport" content="width=device-width, initial-scale=1.0" />
        <title>Document</title>
    </head>
    <body>
        <input type="file" webkitdirectory id="file" />
        <script>
            const file = document.getElementById("file");
            let pathArr = [];
            file.addEventListener("change", function (event) {
                Array.from(this.files).forEach((item) => {
                    pathArr.push(item.webkitRelativePath);
                });

                let InputPath = {};
                for (let i = 0; i < pathArr.length; i++) {
                    const pathAndFile = pathArr[i].split("/");
                    let root = pathAndFile[0];
                    let second = pathAndFile[0] + "/" + pathAndFile[1];
                    let third = pathAndFile[0] + "/" + pathAndFile[1] + "/" + pathAndFile[2];
                    let filename = pathAndFile[pathAndFile.length - 1];
                    for (let j = 0; j < pathAndFile.length; j++) {
                        if (j === 0) {
                            if (InputPath.PathName) {
                                continue;
                            } else {
                                InputPath.PathName = root;
                                InputPath.PathInfo = [];
                            }
                        }
                        if (j === 1) {
                            if (
                                InputPath.PathInfo[InputPath.PathInfo.length - 1] &&
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathName === second
                            ) {
                                continue;
                            } else {
                                InputPath.PathInfo.push({
                                    PathName: second,
                                    PathInfo: [],
                                });
                            }
                        }
                        if (j === 2) {
                            if (
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.length > 0 &&
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo[
                                    InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.length - 1
                                ].PathName === third
                            ) {
                                continue;
                            } else {
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.push({
                                    PathName: third,
                                    fileNames: [],
                                });
                            }
                        }

                        if (j === 3) {
                            let index = 0;

                            if (
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.length > 0 &&
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo[
                                    InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.length - 1
                                ].PathName === third
                            ) {
                                InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo[
                                    InputPath.PathInfo[InputPath.PathInfo.length - 1].PathInfo.length - 1
                                ].fileNames.push(filename);
                            } else {
                                continue;
                            }
                        }
                    }
                }
                console.log(InputPath);
            });
        </script>
    </body>
</html>

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值