面试题

js递归实现数组转化树状结构

      function filterArray(data, parent) {
                let vm = this;
                var tree = [];
                var temp;
                for (var i = 0; i < data.length; i++) {
                    if (data[i].parent == parent) {
                        var obj = data[i];
                        temp = filterArray(data, data[i].id);
                        if (temp.length > 0) {
                            obj.subs = temp;
                        }
                        tree.push(obj);
                    }
                }
                return tree;
            },
          var list =[{
                        "id": 43,
                        "menu_name": "测试任务",
                        "menu_href": "6",
                        "menu_icon": "el-icon-lx-edit",
                        "tree_sort": 600,
                        "tree_level": 1,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": null
                    },
                    {
                        "id": 44,
                        "menu_name": "待领样",
                        "menu_href": "waitGetSamples",
                        "menu_icon": "",
                        "tree_sort": 610,
                        "tree_level": 2,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 43
                    },
                    {
                        "id": 45,
                        "menu_name": "待测试",
                        "menu_href": "waitTest",
                        "menu_icon": "",
                        "tree_sort": 620,
                        "tree_level": 2,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 43
                    },
                    {
                        "id": 46,
                        "menu_name": "测试中",
                        "menu_href": "testInProcess",
                        "menu_icon": "",
                        "tree_sort": 630,
                        "tree_level": 2,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 43
                    },
                    {
                        "id": 47,
                        "menu_name": "数据审核",
                        "menu_href": "7",
                        "menu_icon": "el-icon-lx-punch",
                        "tree_sort": 700,
                        "tree_level": 1,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": null
                    },
                    {
                        "id": 48,
                        "menu_name": "数据审理",
                        "menu_href": "dataAuditing",
                        "menu_icon": "",
                        "tree_sort": 710,
                        "tree_level": 2,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 47
                    },
                    {
                        "id": 49,
                        "menu_name": "异常处理",
                        "menu_href": "exceptionHandling",
                        "menu_icon": "",
                        "tree_sort": 720,
                        "tree_level": 2,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 47
                    },
                    {
                        "id": 50,
                        "menu_name": "样品异常",
                        "menu_href": "SamplesAbnormal",
                        "menu_icon": "",
                        "tree_sort": 721,
                        "tree_level": 3,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 49
                    },
                    {
                        "id": 51,
                        "menu_name": "测试数据异常",
                        "menu_href": "testDataException",
                        "menu_icon": "",
                        "tree_sort": 722,
                        "tree_level": 3,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 49
                    },
                    {
                        "id": 52,
                        "menu_name": "设备异常处理",
                        "menu_href": "deviceExceptionHandling",
                        "menu_icon": "",
                        "tree_sort": 723,
                        "tree_level": 3,
                        "is_show": 1,
                        "status": 0,
                        "remarks": "",
                        "parent": 49
                    }
                ]

console.log(filterArray(list))

返回最接近输入值的数字,如果有多个,返回最大的那个

返回最接近输入值的数字,如果有多个,返回最大的那个
lookup(array, value) {
      // 将原数组复制,不会影响原数组
      let arr = array.concat([]);
      arr.push(value);
      // 数据排序
      arr.sort((a, b) => {
        return a - b;
      });
      let index = arr.indexOf(value);
      // 当前项在数组第一项 / 最后一项,返回当前项的后一项 / 前一项
      if (index === 0) {
        return arr[index + 1];
      } else if (index === array.length - 1) {
        return arr[index - 1];
      }
      // 当前项和前一项或者后一项比较,返回差值小的项
      let resultIndex =
        arr[index] - arr[index - 1] > arr[index + 1] - arr[index]
          ? index + 1
          : index - 1;
      return arr[resultIndex];
    }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值