關閉我的頭頂:
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