с макушки головы:
function create(arrArray) {
for(var i = 0; i < arrArray.length; i++) {
var arr = arrArray[i];
var _dict = dictionary;
for(var j = 0; j < arr.length; j++) {
if(!_dict[arr[j]]) {
_dict[arr[j]] = {};
}
_dict = _dict[arr[j]];
}
}
}
EDIT
Вот подмножество решения. Я написал функцию, которая принимает в качестве параметров массив и словарь:
function create(arr, dict) {
var _dict = dict;
for(var j = 0; j < arr.length; j++) {
if(!_dict[arr[j]]) {
_dict[arr[j]] = {};
}
_dict = _dict[arr[j]];
}
}
var dictionary = {};
create(["for", "item", "in", "list"], dictionary);
create(["if", "condition"], dictionary)
Если вас не беспокоит перезапись, вы можете убрать if
в цикле:
function create(arr, dict) {
var _dict = dict;
for(var j = 0; j < arr.length; j++) {
_dict[arr[j]] = {};
_dict = _dict[arr[j]];
}
}
А для лучшей читаемости:
function create(arr, dict) {
var _dict = dict;
for(var j = 0; j < arr.length; j++) {
var key = arr[j];
_dict[key] = {};
_dict = _dict[key];
}
}