js map遍历 修改对象里面的值_javascript-如何使用jQuery.map递归修改嵌套对象

如何使用jQuery.map(或香草JS)递归修改嵌套对象?

// Original Object

var data = [{

name: 'Parent',

children: [{

name: 'Child',

children: [{

name: 'ChildChild'

}]

}]

}];

// Resulting Object

var data = [{

name: 'Parent',

text: 'Parent',

children: [{

name: 'Child',

text: 'Child',

children: [{

name: 'ChildChild',

text: 'ChildChild'

}]

}]

}];

我目前在jQuery.map之类的顶层中执行此操作,但不知道如何递归实现.

$.map(data, function(obj){

return $.extend(obj, {text: obj.name});

});

解决方法:

不要使用map()修改数组;它旨在创建数组的子集.要修改数组,请使用each()或任何其他标准循环机制.

考虑到这一点,在这种情况下,您可以使用$.each()遍历数组每个级别的对象.尝试这个:

function setText(arr) {

$.each(arr, function(i, obj) {

obj.text = obj.name;

if (obj.children && obj.children.length) {

setText(obj.children);

}

});

}

setText(data);

标签:javascript,jquery,recursion

来源: https://codeday.me/bug/20191027/1943064.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值