主页>技术社区>IT 技术>前端开发>Web前端

脚本第n阶树

eIT.com.cn 2022/9/23 23:37:22 阅读 75 次

打印


本文介绍了脚本第n阶树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  1. 如果所有单击的子项都为True,则需要将父项的Clicked属性更改为True。因此,在本例中,ID-14,15是将CLICKED属性设置为True。因此,ID 11被点击的父母必须成为真的。
  2. 如果11、12、14、15为真,则必须使4为真。
let obj = {children:[
{
    ID:1,
    clicked: false,
    children: [
        {
            ID:4,
            clicked: false,
            children: [
                {
                    ID:11,
                    clicked: false,
                    children: [
        {
            ID:14,
            clicked: true,
        },
        {
            ID:15,
            clicked: true,
        }
    ]
                },
                {
                    ID:12,
                    clicked: false,
                }
            ]
        },
        {
            ID:5,
            clicked: false,
        }
    ]
  }
 ]
}

推荐答案

Nina很好地回答了您何时要更改输入。

下面是一个创建新对象的简单方法:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">

const consolidate = ({clicked, children = [], ...rest}, _, __, kids = children .map (consolidate)) => ({
  ...rest, 
  clicked: clicked || (kids .length > 0) && kids .every (k => k .clicked),
  ...(kids .length ? {children: kids} : {})
})

const obj1 = {children: [{ID: 1, clicked: false, children: [{ID: 4, clicked: false, children: [{ID: 11, clicked: false, children: [{ID: 14, clicked: true}, {ID: 15, clicked: true}]}, {ID: 12, clicked: false}]}, {ID: 5, clicked: false}]}]};
//  with 12 switched to `true`
const obj2 = {children: [{ID: 1, clicked: false, children: [{ID: 4, clicked: false, children: [{ID: 11, clicked: false, children: [{ID: 14, clicked: true}, {ID: 15, clicked: true}]}, {ID: 12, clicked: true}]}, {ID: 5, clicked: false}]}]};

console .log ('obj1', consolidate (obj1))
console .log ('obj2', consolidate (obj2))
.as-console-wrapper {max-height: 100% !important; top: 0}

我们重复children(如果有),然后重新生成对象,计算每个对象的clicked属性。

这篇关于脚本第n阶树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!






相关内容


热门栏目


特别声明


最新资讯
热讯排行



合作媒体友情链接
生活常识小贴士 软件开发教程 智慧城市生活网 息县通生活服务[移动版] 息县商圈[移动版] 美食菜谱
健康养生 法律知识 科技频道 电影影讯 留学考研学习 星座生肖|解梦说梦




关于我们 | 联系我们 | 合作媒体 | 使用条款 | 隐私权声明 | 版权声明

      Copyright © 2023 eIT.com.cn. All Rights Reserved. 豫ICP备2022012332号