JS 多层级数组遍历

问题描述

处理一个多层级(多维)的数据,每层遍历来实现赋值或者获取对应的值,在JavaScript中,多层级数组的遍历可以使用递归函数来实现

递归函数:在函数体内调用本函数。是一种调用模式,是一种逻辑程序基础的体现。

解决方案

案例

let arrList = [
	{
		id: '1',
		title: '生鲜果蔬',
		child: [
			{
				id: '1-1',
		        title: '蔬菜',
		        child: [
		        	{
		        		id: '1-1-1',
		        		title: '西兰花',
		        	},
		        	{
		        		id: '1-1-2',
		        		title: '辣椒'
		        	},
		        ]
			},
			{
				id: '1-2',
		        title: '水果',
		        child: [
		        	{
		        		id: '1-2-1',
		        		title: '葡萄',
		        	},
		        	{
		        		id: '1-2-2',
		        		title: '荔枝'
		        	},
		        ]
			}
		]
	},
    {
		id: '2',
		title: '快消品',
		child: [
			{
				id: '2-1',
		        title: '家居用品',
		        child: [
		        	{
		        		id: '2-1-1',
		        		title: '垃圾袋',
		        	},
		        	{
		        		id: '2-1-2',
		        		title: '扫把'
		        	},
		        ]
			}
		]
	}
]

获取arrList 中所有title值

let titleList = []
function getTitle(arr) {
	arr.forEach(line => {
		titleList.push(line.title)
		if (line.child && line.child.length) {
			getTitle(line.child)
		}
	})
}

getTitle(arrList)  // [生鲜果蔬, 蔬菜, 西兰花, 辣椒, 水果, 葡萄, 荔枝, 快消品, 家居用品, 垃圾袋, 扫把]

以上是个人经验,希望对大家有所帮助!

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
你可以使用递归算法来遍历 jqgrid tree,按照层级顺序渲染。具体实现方法如下: 1. 首先,你需要确定 jqgrid tree 的数据结构。通常情况下,它是一个嵌套的 JSON 数组,每个节点都有一个唯一的 id 和一个 parent_id,指向它的父节点。 2. 接下来,你可以定义一个递归函数,用来遍历 jqgrid tree。该函数接受一个节点作为参数,并将该节点渲染到页面上。 3. 在递归函数中,你可以先渲染当前节点,然后递归遍历该节点的所有子节点。你可以使用 jQuery 的 each() 函数来遍历子节点,然后对每个子节点递归调用该函数。 4. 在渲染节点时,你可以根据节点的层级来设置缩进,以便更清晰地显示节点之间的层级关系。你可以使用 CSS 的 padding 属性来设置缩进。 下面是一个简单的示例代码,用来遍历 jqgrid tree 并按照层级顺序渲染: ```javascript function renderNode(node, level) { // 渲染当前节点 var html = '<tr><td style="padding-left: ' + level * 20 + 'px;">' + node.name + '</td></tr>'; $("#grid").append(html); // 遍历子节点 $.each(node.children, function(index, child) { renderNode(child, level + 1); }); } // 遍历 jqgrid tree $.each(data, function(index, node) { if (node.parent_id == null) { renderNode(node, 0); } }); ``` 在上面的示例代码中,renderNode() 函数用来渲染节点,它接受两个参数:节点对象和节点的层级。在遍历 jqgrid tree 时,我们使用 each() 函数来遍历每个根节点,并调用 renderNode() 函数来渲染整个树形结构。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值