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

标签 javascript jquery arrays object each

我需要使用存储在数组中的值创建一个 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':{}
             }
        }
    }
}

最佳答案

您可以使用reduceRight为此,使用 ES6 computed property name语法。

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

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

console.log(obj);

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

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

关于javascript - 使用 jquery .each 循环从数组中的值创建多维 javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48451569/

相关文章:

arrays - 将数组分配给一行多维数组时出错

javascript - @Input 或服务在组件中不起作用

javascript - AngularJS ng-repeat 按 JSON 中的特定 ID 进行过滤

javascript - jQuery:在每个迭代器中使用时间延迟?

javascript - 将菜单项和 jQuery ui 选项卡链接在一起

java - 如何知道方法是否使用反射将数组作为参数

带有反斜杠的 JavaScript encodeURIComponent

javascript - 自动上传本地文件,即使它在 Firefox 中发生更改

javascript - 如何使此 javascript 代码更清晰、更简洁? (div 闪烁的颜色)

javascript - 无法将数组值传递给单击函数