使用 underscore.js 在对象数组中搜索字符串

Search the String inside array of Objects using underscore.js

我想使用 underscore.js

在对象中搜索字符串

JSON数据

{ data:
       [ 
         {'id': 1, 'name': 'New Samsung Galaxy 3' },
         {'id': 2, 'name': 'Samsung Grand'},  
         {'id': 3, 'name': 'Galaxy 3 dress new Arrival'}, 
         {'id': 4, 'name': 'Samsung Galaxy 3 black ' }, 
         {'id': 5, 'name': 'Samsung refrigerators'} 
        ];
 }

假设我有一个关键字 Samsung Galaxy 3。我只想要 return 匹配的字符串。

像这样输出:

{ data:
       [ 
          {'id': 1, 'name': 'New Samsung Galaxy 3' },
          {'id': 4, 'name': 'Samsung Galaxy 3 black ' }, 
       ];
 }

使用_filter.

var data =
       [ 
         {'id': 1, 'name': 'New Samsung Galaxy 3' },
         {'id': 2, 'name': 'Samsung Grand'},  
         {'id': 3, 'name': 'Galaxy 3 dress new Arrival'}, 
         {'id': 4, 'name': 'Samsung Galaxy 3 black ' }, 
         {'id': 5, 'name': 'Samsung refrigerators'} 
        ];

    _.filter(data, function(item) { 
       return item.name.indexOf("Samsung Galaxy 3") != -1; 
    });

您可以使用_filter or _where

_过滤器: Return 所有通过真值测试的元素。类似于 select.

_哪里: filter 常见用例的便捷版本。仅选择对象 包含特定的 key:value 对。

http://jsfiddle.net/yqagfLqb/

var data =
   [ 
     {'id': 1, 'name': 'New Samsung Galaxy 3' },
     {'id': 2, 'name': 'Samsung Grand'},  
     {'id': 3, 'name': 'Galaxy 3 dress new Arrival'}, 
     {'id': 4, 'name': 'Samsung Galaxy 3 black ' }, 
     {'id': 5, 'name': 'Samsung refrigerators'} 
    ];

_.where(data, function(item) { 
   return item.name.indexOf("Samsung Galaxy 3") != -1; 
});

console.log(data);