Trie树

作者: 神刀 | 来源:发表于2017-12-31 16:00 被阅读8次

    var transObject = function(tableData, keys) {
    let hashTable = {}, res = []
    for (let i = 0; i < tableData.length; i++) {
    let arr = res, cur = hashTable
    for (let j = 0; j < keys.length; j++) {
    let key = keys[j], filed = tableData[i][key]
    if (!cur[filed]) {
    let pusher = {
    value: filed
    }, tmp
    if (j !== (keys.length - 1)) {
    tmp = []
    pusher.children = tmp
    }
    cur[filed] = { $$pos: arr.push(pusher) - 1 }
    cur = cur[filed]
    arr = tmp
    } else {
    cur = cur[filed]
    arr = arr[cur.$$pos].children
    }
    }
    }
    return res
    }

    相关文章

      网友评论

          本文标题:Trie树

          本文链接:https://www.haomeiwen.com/subject/xahagxtx.html