模糊模块返回匹配字的JSON数组?

时间:2016-05-31 08:50:40

标签: arrays json node.js fuzzy-search fuzzy

我正在使用带有节点的fuzzy模块,但我有一个长JSON数组包含对象。我需要匹配对象整体。像

模块的链接 Fuzzy Modules

var list = [
  {rompalu: 'baconing', zibbity: 'simba'}
, {rompalu: 'narwhal' , zibbity: 'mufasa'}
, {rompalu: 'a mighty bear canoe', zibbity: 'saddam hussein'}
];

我有上面的JSON数组列表,如果我传递单词narwhal,它只返回数组中匹配的单词,但我需要匹配对象的数组。输出如:

[
   {rompalu: 'narwhal' , zibbity: 'mufasa'}
]

1 个答案:

答案 0 :(得分:1)

似乎有各种选择。

  • 使用fuzzy.test()手动过滤列表:

    var results = list.filter(function(obj) {
        return fuzzy.test('narwhal', obj.rompalu);
    });
    
  • 提取“原件”:

    var options = { extract: function(el) { return el.rompalu; } };
    var results = fuzzy.filter('narwhal', list, options).map(function(r) {
      return r.original;
    });