net core 通过js打印集合(创建树)

结合ASP.NET CORE,将控制器执行后的数据结果打印在网页控制台

将行数据转为树形结构(采用linq+lambda+递归)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace WebApplication1.Logic.CreateTree
{
    public class Node
    {
        public int id;
        public string name;
        public int? parentid;
    }
    public class NewNode
    {
        public int id;
        public string name;
        public int? parentid;
        public List<NewNode> items;
    }

    public static class TreeFns
    {
        public static List<NewNode> CreateNewTree(List<Node> originalList)
        {
            List<NewNode> nodes = originalList.Where(v => v.parentid == null).Select(v => new NewNode() { id = v.id, name = v.name, parentid = v.parentid, items = new List<NewNode>() { } }).ToList();
            foreach (NewNode node in nodes)
            {
                node.items = GetAllLeaves(node, originalList);
            }
            return nodes;
        }

        public static List<NewNode> GetAllLeaves(NewNode val, List<Node> originalList)
        {
            List<NewNode> nodes = originalList.Where(v => v.parentid == val.id).Select(v => new NewNode() { id = v.id, name = v.name, parentid = v.parentid, items = new List<NewNode>() { } }).ToList();
            foreach (NewNode node in nodes)
            {
                node.items = GetAllLeaves(node, originalList);
            }
            return nodes;
        }
    }
}

结果

  

原文地址:https://www.cnblogs.com/cat66/p/11125677.html

时间: 2024-11-08 22:35:24

net core 通过js打印集合(创建树)的相关文章

js算法集合(一) 水仙花数 及拓展(自幂数的判断)

js算法集合(一) ★ 最近有些朋友跟我说对js中的一些算法感到很迷惑,知道这个算法到底是怎么回事,但是就是不会用代码把它写出来,这里我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,希望能对大家有所帮助. 1.验证一个数是否为水仙花数 ①要写水仙花数的算法,我们首先来了解一下什么是水仙花数,水仙花数是指一个 3位正整数 ,它的每个位上的数字的 3次幂之和等于它本身.(例如:1^3 + 5^3+ 3^3 = 153): ②了解了什么是水仙花数我们就开始分析该怎么下手.通过定义来看

js算法集合(二) javascript实现斐波那契数列 (兔子数列) Javascript实现杨辉三角

js算法集合(二)  斐波那契数列.杨辉三角 ★ 上一次我跟大家分享一下做水仙花数的算法的思路,并对其扩展到自幂数的算法,这次,我们来对斐波那契数列和杨辉三角进行研究,来加深对Javascript的理解. 一.Javascript实现斐波那契数列 ①要用Javascript实现斐波那契数列,我们首先要了解什么是斐波那契数列:斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为

使用Ext 创建树

ext使用的是ext3.4.0版本 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <html> <head> <title>Hello-Ext</title> <link rel="stylesheet" type="text/css" href="ext/resources/css/ext-

ExtJs通过后台动态创建树

ExtJs动态创建树的方法是:当树的TreeStore要加载的时候,通过ajax请求后台数据,根据后台返回数据动态加载树结构. 正常情况下我们定义TreeStore是这样定义的: var tree = Ext.create('Ext.data.TreeStore', { root : { expanded : true, children : [ { text : "操作", id : "operator", expanded : true, children :

JS中集合对象(Array、Map、Set)及类数组对象的使用与对比

原文地址 在使用js编程的时候,常常会用到集合对象,集合对象其实是一种泛型,在js中没有明确的规定其内元素的类型,但在强类型语言譬如Java中泛型强制要求指定类型. ES6引入了iterable类型,Array,Map,Set都属于iterable类型,它们可以使用for...of循环来遍历,都内置forEach方法. 数组 遍历 普通遍历 最简单的一种,也是使用频率最高的一种. let arr = ['a', 'b', 'c', 'd', 'e'] for (let i = 0; i < ar

JS打印和报表输出

JS打印和报表输出2008-07-15 22:16一打印: 转自:http://hi.baidu.com/afei0211/blog/item/20523955ca8bebc2b745ae98.html (1) 在实际应用中!特别是一些公司需要报表输出和打印!这个时候我们就会用到JS的打印和报表输出功能!当然打印很简单就是window.print();你也可以在按钮的onclick事件中写上return print()可以实现打印效果!这个时候打印你会发现打印出来的是整个页面,包裹着网站的log

EL使用:打印集合

<%@page import="java.util.HashMap"%><%@page import="java.util.Map"%><%@page import="java.util.ArrayList"%><%@page import="java.util.List"%><%@ page language= "java" contentType=&

创建树 - #号法

#创建树,让树的每一个节点都变成度数为2的树 通过先序遍历124###3##可以唯一确定一棵树. // nonrecursion.cpp // 对树的操作 #define _CRT_SECURE_NO_WARNINGS #include <iostream> #include <cstdio> #include <stack> using namespace std; // 二叉树表示法 typedef struct BiTNode { int data; struct

JS打印等腰三角形

初来乍到,写个JS小程序压压惊.以下为JS打印等腰三角形的简单例子. <!DOCTYPE html><html>    <head>        <meta charset="UTF-8">        <title>打印等腰三角形</title>        <script type="text/javascript">            window.onload =