关闭我的头顶:
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]];
}
}
}
编辑
这里是解决方案的一个子集。我写了一个函数,它在阵列和字典作为参数:
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];
}
}
党 - 非常感谢!这看起来不错。我只是测试了这个 - Diggin'与if语句。这正是我正在寻找的 - 谢谢! – Matt 2011-04-13 19:59:49