如何使用jQuery.map递归修改嵌套对象

时间:2016-03-08 16:29:03

标签: javascript jquery recursion

如何使用jQuery.map(或vanilla 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});
});

https://jsfiddle.net/minlare/0p0zb8vw/

1 个答案:

答案 0 :(得分:4)

不要使用let englishTextSize = englishString.sizeWithAttributes([NSFontAttributeName: UIFont.systemFontOfSize(14)]) let englishLabel = UILabel(frame: CGRectMake(self.view.center.x, 150, englishTextSize.width, englishTextSize.height)) print(englishLabel.text.sizeWithAttributes(orderAttributes).width) 来修改数组;它旨在创建一个数组的子集。要修改数组,请使用map()或任何其他标准循环机制。

考虑到这一点,在这种情况下,您可以使用each()来递归数组每个级别的对象。试试这个:

$.each()

Updated fiddle

相关问题