js对数组的双层数组对象的键名进行更改

要更改键名的数据

objData=[
	{
		text:'1',
		id:'0',
		obj:[
			{
				text:'1-1',
				id:'11'
			},{
				text:'1-2',
				id:'12'
			}
		]
	},{
		text:'2',
		id:'1',
		obj:[
			{
				text:'2-1',
				id:'21'
			},{
				text:'2-2',
				id:'22'
			}
		]
	}
]

将obj更改为children,id改为value,text改为name

renameObjectKey(oldObj) { // 对键名进行替换 第一层数组对象 oldObj为数组对象
	const userRelations = {
        text: "name",
        id: "value",
        obj: "children"
    };
	let arr = [];
	oldObj.forEach((item) => {
		let obj = {};
		for(let i in item){
			if(i == 'dicData'){
				obj = this.renameObjectKeyTow(item)
			}
		}
		Object.keys(item).forEach((value) => { // 替换第一层数组对象键名
			obj[userRelations[value]] = item[value];
		});
		arr.push(obj);
	})
	return arr
	},
	renameObjectKeyTow(oldObj){ // 第二层数组对象
		const userRelations = {
		    text: "name",
		    id: "value",
		};
		let arr = [];
		oldObj.obj.forEach((item) => {
			let obj = {};
			Object.keys(item).forEach((value) => {
				obj[userRelations[value]] = item[value];
			});
			arr.push(obj);
		})
		oldObj.obj= arr
		return oldObj;
	},

// 或者直接在对象里添加需要的元素将值赋值上去
	renameObjectKey(obj){
		obj.forEach(item => {
			item.text=item.name
			item.value=item.id
			if (item.children && item.children.length > 0) {
				this.renameObjectKey(item.children);
			}
		});
		return obj
	},

使用时

let a = this.renameObjectKey(this.objData)
// a就是处理后的双重数组对象
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值