簡體   English   中英

使用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 我希望它僅返回匹配的字符串。

像這樣的輸出:

{ 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_where

_filter:返回所有通過真相測試的元素。 select類似。

_where: 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);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM