Javascript 使用下划线.js搜索对象数组中的字符串

Javascript 使用下划线.js搜索对象数组中的字符串,javascript,node.js,underscore.js,Javascript,Node.js,Underscore.js,我想使用下划线.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 b

我想使用下划线.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'} 
        ];
 }
假设我有一个关键字
三星Galaxy 3
。我希望它只返回匹配的字符串

喜欢这个输出:

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

您可以使用或

_过滤器: 返回通过真理测试的所有元素。类似于
选择

_其中:
过滤器
常见用例的方便版本。仅选择对象 包含特定的
键:值


仅供参考,这不是JSON,而是一个对象数组。JSON是一种文本数据格式。这个问题与JSON无关。@FelixKling这是响应数据,我们可以将其复制以供参考。@FelixKling它是一个JSON对象数组,又称JSON数组。重复Felix所说的。这里没有JSON。@rz3r0:不,不是。JSON是一种数据格式(如XML、CSV等),而不是编程语言的一部分。您也可以使用
.filter
@Mahesh Sapkal在不加下划线的情况下执行此操作。这与我的问题thnak有关you@mrwillihog,是的,你是对的,我们可以改为使用Array.filter,然而问题是用下划线来做。我的任务完成了,我想问哪个更好?我已经在我的项目中使用了下划线。哪一个更快。我想搜索包括id属性在内的所有属性,而不是名称字段。我的意思是,如果我开始查找值5,它可能会给出{id':5}对象,即使该值在名称字段中为5。感谢您的帮助,我使用了筛选器。你能告诉我哪一个更快吗_过滤或_where@AkhileshSingh因此,根据我的经验,它们与_非常相似,它只是_过滤器的一个方便版本。但最好是使用真实数据分析JS,以查看应用程序的性能。
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; 
    });
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);