使用jquery .each循环从数组中的值创建多维javascript对象

Mir*_*rko 0 javascript arrays each jquery object

我需要使用存储在数组中的值创建一个javascript对象.每个值都应该是前一个值中的新键.实现这一目标的最佳方法是什么?

var option = ['level_1','level_2','level_3','level_4'];

$.each( option, function( key, value ) {
    // ....
});

// I'm trying to get this result
var result = {
    'level_1': {
        'level_2': {
            'level_3': {
                'level_4':{}
             }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

tri*_*cot 6

您可以使用reduceRightES6 计算的属性名称语法来实现此目的.

const option = ['level_1','level_2','level_3','level_4'];

const obj = option.reduceRight( (acc, lvl) => ({ [lvl]: acc }), {});

console.log(obj);
Run Code Online (Sandbox Code Playgroud)

在传统的函数语法中,它将是:

const obj = option.reduceRight(function (acc, lvl) {
    return { [lvl]: acc };
}, {});
Run Code Online (Sandbox Code Playgroud)