我怎么能得到trie格式的结果?从此代码反对字符串格式。

时间:2018-01-30 06:21:24

标签: javascript arrays object trie

我的预期输出是[“Mark”,“Mary”,“Martod”,“Mariam”,“Marg”]

在控制台中获取输出是[“Mark”,“Mary”,“Mart”,“Mari”,“Marg”]

我怎样才能将输出作为此代码的预期结果?任何人都可以帮我吗?

function get_suggestion_array_from_object(searchstring, current_object) {
    var suggestion_array = [];
    suggestion_array.push(searchstring);
    // console.log(suggestion_array);
    append_object_key(suggestion_array, current_object);
}

var test_searchstring = 'Mar';
var test_current_object_string = '{"k":0,"y":0,"t":{"o":{"d":0}},"i":{"a":{"m":0}},"g":0}';
var test_current_object = JSON.parse(test_current_object_string);
console.log(test_current_object);
get_suggestion_array_from_object(test_searchstring, test_current_object);


function append_object_key(suggestion_array, current_object) {
    var keys = Object.keys(current_object);
    // CONCATENATE WITH SUGGESTION ARRAY ELEMENTS
    var new_suggestion_array = [];
    for (var i = 0; i < keys.length; i++) {
        var current_key = keys[i];
        var array_to_push = suggestion_array.slice();
        for (var j = 0; j < suggestion_array.length; j++) {
            array_to_push[j] = array_to_push[j] + current_key;
        }
        new_suggestion_array = new_suggestion_array.concat(array_to_push);

    }
    console.log(new_suggestion_array);

}

1 个答案:

答案 0 :(得分:0)

有几种方法:

&#13;
&#13;
var test_searchstring = 'Mar';
var test_current_object_string = '{"k":0,"y":0,"t":{"o":{"d":0}},"i":{"a":{"m":0}},"g":0}';
var test_current_object = JSON.parse(test_current_object_string);

function get_suggestion_array_from_object(s, o) {
  return Object.keys(o).map(function(k) {
    var e = k;
    var no = o[k];
    while (no) {
      var nk = Object.keys(no)[0];
      e += nk;
      no = no[nk];
    }
    return s + e;  
  })
}

console.log(get_suggestion_array_from_object(test_searchstring, test_current_object))
&#13;
&#13;
&#13;

...

&#13;
&#13;
getWindow().getDecorView()
&#13;
&#13;
&#13;