• 根据数组的某个属性判断是否存 并且转换为其他形式数组


    1.问题背景

    因element UI 中 级联选择器 选择 参数 表达为 

     [[0], [0, 1], [0, 2], [1, 0], [1, 1],[2,2]]
    不是我提交给后端想要的结果,所以需要转换
    2.主要过程
        var label = [
            {
                id: 0,
                name: '红色',
                isx: true,
                childen: [
                    {
                        id: 0,
                        name: '大',
                        isx: true,
                    },
                    {
                        id: 1,
                        name: '中',
                        isx: true,
    
                    },
                    {
                        id: 2,
                        name: '小',
                        isx: true,
    
                    }
                ]
            },
            {
                id: 1,
                name: '白色',
                childen: [
                    {
                        id: 0,
                        name: '大',
                        isx: true,
    
                    },
                    {
                        id: 1,
                        name: '中',
                        isx: true,
    
                    },
                    {
                        id: 2,
                        name: '小',
                    }
                ]
            },
            {
                id: 2,
                name: '绿色',
                childen: [
                    {
                        id: 0,
                        name: '大',
                    },
                    {
                        id: 1,
                        name: '中',
                    },
                    {
                        id: 2,
                        name: '小',
                    }
                ]
            }
        ]
        var arrFrom = [[0], [0, 1], [0, 2], [1, 0], [1, 1],[2,2]];
        let datas = [];
        const isBelowThreshold = (currentValue) => currentValue.id < 40;
        for (let i = 0; i < arrFrom.length; i++) {
            const datasIndex = (element) => element.val == arrFrom[i][0];
            const labelIndex = (element) => element.id == arrFrom[i][0];
            const ChildIndex = (element) => element.id == arrFrom[i][1];
            const newIndex = datas.findIndex(datasIndex);//新数组是否存在
            const oldIndex = label.findIndex(labelIndex);//原数组是否存在
            // 判断 datas数组 是否存在某个值    false
            if (newIndex === -1) {
                const childen = []
                //判断 arrFrom 值 是否存在第二个num
                if (arrFrom[i].length > 1) {
                    //查找 label数组子级中 存在 的索引
                    const cIndex = label[oldIndex].childen.findIndex(ChildIndex);
                    childens.isx = true;
                    childen.push(label[oldIndex].childen[cIndex]);
                }
                datas.push({
                    val: label[oldIndex].id,
                    name: label[oldIndex].name,
                    isx:label[oldIndex].isx?? null,
                    childen: childen
                })
            } else {
                const childen = []
                //判断 arrFrom 值 是否存在第二个num
                if (arrFrom[i].length > 1) {
                    //查找 label数组子级中 存在 的索引
                    const cIndex = label[oldIndex].childen.findIndex(ChildIndex);
                    childens = label[oldIndex].childen[cIndex];
                    childens.isx = true;
                    datas[newIndex].childen.push(childens)
                }
            }
        }
        console.log(datas)
  • 相关阅读:
    [LeetCode] Maximum Depth of Binary Tree
    [LeetCode] Binary Tree Level Order Traversal II
    阿里第一天——maven学习
    微博用户行为分析
    对节目微博进行强过滤之后的处理
    关于推荐和机器学习的几个网站
    大论文微博个性化
    新浪微博用户分析
    位运算符规律小结
    字符串类常见面试大题
  • 原文地址:https://www.cnblogs.com/zhaozhenghao/p/13629897.html
Copyright © 2020-2023  润新知