账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    js N层数组嵌套取最后一层数据进行过滤
    31
    0

    问题描述

    如题所示,目前获取到的数据是多层树形结构,每一层都有自己的children,如何才能获取到最后一层的children对其进行处理,将数据进行过滤,处理后的数据最后一层只有阿凡达这一组,如第二组数据那样 ,层数是不固定的,求大佬们指点如何处理该种数据?

    问题出现的环境背景及自己尝试过哪些方法

    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    修改前:
    [{

    "code": "001",
    "agyTypeCode": "2",
    "children": [{
        "code": "001001",
        "agyTypeCode": "1",
        "children": [{
            "code": "001001001",
            "agyTypeCode": "1",
            "children": [{
                "finChfName": "阿拉尔",
                "isPairAc": 1,
                "code": "0001",
                "name": "政府会计制度(2019)",
                "agyCode": "001001001",
                "id": "f28dad108fd411e89b13a146c4299200",
                "acsCode": "001"
            }, {
                "finChfName": "阿凡达",
                "isPairAc": 0,
                "code": "0002",
                "name": "政府会计制度",
                "agyCode": "001001001",
                "id": "e66f85a1907211e88798292b71e6b4b4",
                "acsCode": "002"
            }, {
                "finChfName": "嗯嗯",
                "isPairAc": 1,
                "code": "0003",
                "name": "账号",
                "agyCode": "001001001",
                "id": "f0cf4d60963911e8ba520dc161e32ad2",
                "acsCode": "001"
            }],
            "name": "教育局本级",
            "pid": "41a9b5c08fd411e89e1bcd37e4564ff2",
            "id": "627df2208fd411e89e1bcd37e4564ff2"
        }],
        "name": "华南教委汇总",
        "pid": "0d2ea6c08fd411e89e1bcd37e4564ff2",
        "id": "41a9b5c08fd411e89e1bcd37e4564ff2"
    }],
    "name": "华南大区汇总",
    "pid": "",
    "id": "0d2ea6c08fd411e89e1bcd37e4564ff2"

    }]
    修改后:
    [{

    "code": "001",
    "agyTypeCode": "2",
    "children": [{
        "code": "001001",
        "agyTypeCode": "1",
        "children": [{
            "code": "001001001",
            "agyTypeCode": "1",
            "children": [ {
                "finChfName": "阿凡达",
                "isPairAc": 0,
                "code": "0002",
                "name": "政府会计制度",
                "agyCode": "001001001",
                "id": "e66f85a1907211e88798292b71e6b4b4",
                "acsCode": "002"
            }],
            "name": "教育局本级",
            "pid": "41a9b5c08fd411e89e1bcd37e4564ff2",
            "id": "627df2208fd411e89e1bcd37e4564ff2"
        }],
        "name": "华南教委汇总",
        "pid": "0d2ea6c08fd411e89e1bcd37e4564ff2",
        "id": "41a9b5c08fd411e89e1bcd37e4564ff2"
    }],
    "name": "华南大区汇总",
    "pid": "",
    "id": "0d2ea6c08fd411e89e1bcd37e4564ff2"

    }]

    0
    打赏
    收藏
    点击回答
    您的回答被采纳后将获得:提问者悬赏的 10 元积分
        全部回答
    • 0
    • 赛萌 普通会员 1楼

      在JavaScript中,你可以使用数组的filter()方法来实现这个需求。filter()方法接收一个函数作为参数,该函数用于过滤数组中的每个元素。在这个函数中,你可以根据你的需求来修改每个元素。

      假设你的数组的层数为n,你想获取最后n层的元素,你可以这样实现:

      javascript function filterNLayers(array, n) { return array.filter(function(item, index, self) { return index === n - 1; }); }

      这个函数接收一个数组和一个整数n作为参数。它使用filter()方法,传入一个函数,这个函数返回一个布尔值,表示当前元素是否在指定的层。如果是,那么函数返回true,否则返回false。最后,filter()方法将返回这个新数组。

      例如,如果你有一个嵌套的数组,如下所示:

      javascript var nestedArray = [ [1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15] ];

      你可以使用filterNLayers()函数来获取最后三层的元素:

      javascript var filteredArray = filterNLayers(nestedArray, 3); console.log(filteredArray); // [10, 11, 12]

      在这个例子中,filteredArray现在只包含最后三层的元素,即10,11和12。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部