JS_js修改无限级数组对象键名

需求:替换数组对象中ids为id,name为label,当children为空数组的时候,删除children子节点

方法一

let list = [{
		ids: 1,
		name: '蔬菜',
		children: []
	},
	{
		ids: 2,
		name: '水果',
		children: [{
			ids: 22,
			name: '香蕉',
			children: []
		}]
	}
]

var key = 'childrens'

function parseJson(arr) {
	arr = arr.slice()

	function toParse(arr) {
		arr.forEach(function(item) {
			item.label = item.name
			delete item.name
			if (item.children.length > 0 && Array.isArray(item.children)) {
				item[key] = item.children
				toParse(item[key])
			}
			delete item.children
		})
		return arr
	}
	return toParse(arr)
}
console.log(parseJson(list))

方法二

let list = [{
	ids: 1,
		name: '蔬菜',
		children: []
	},
	{
		ids: 2,
		name: '水果',
		children: [{
			ids: 22,
			name: '香蕉',
			children: []
		}]
	}
]

let stlist = JSON.stringify(list);
stlist = stlist.replace(/\"ids"/g, '"id"');
stlist = stlist.replace(/\"name"/g, '"label"');
stlist = stlist.replace(new RegExp(/(,"children":\[\])/g), '');
console.log(JSON.parse(stlist));

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值