如何使用下划线通过键查找数组内的对象

时间:2016-08-11 20:47:19

标签: javascript jquery underscore.js

我有一个示例对象数组,如下所示,我想要一个名为Test的数组中的对象。

**Results: [
 { Name: "Test",
   Age :21
   ChildrenObj:
 },
 { Name: "Something else",
   Age :21
   ChildreObj
 }**

我正在使用以下代码来查找它,而且它没有返回正确的数据

var names= (_un.find(data.Results, function(item) {
        return item.Name= "Test"; 
    }));

任何方向都将受到赞赏。

4 个答案:

答案 0 :(得分:2)

这是一个有效的例子,只是为了好玩。

var Results = [{
  Name: "Test",
  Age: 21,
  ChildrenObj: {}
}, {
  Name: "Something else",
  Age: 21,
  ChildrenObj: {}
}];

var names = (_.find(Results, function(item) {
  return item.Name == "Test";
}));

console.log(names);
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>

答案 1 :(得分:2)

&#13;
&#13;
var data = [{ 
   Name: "Test",
   Age :21
 },
 { Name: "Something else",
   Age :22
 }];
 
 
console.log(_.findWhere(data, {Age: 22}));
&#13;
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:1)

试试这个:

return item.Name == "Test";

你正在做的任务不是比较。

Results: [
 { Name: "Test",
   Age :21
   ChildrenObj:
 },
 { Name: "Something else",
   Age :21
   ChildreObj
 }

答案 3 :(得分:1)

您可以使用过滤器

results = [
 { Name : "Test",
   Age : 21,
   ChildrenObj : null
 },
 { Name : "Something else",
   Age :21,
   ChildrenObj : null
 }];
var names = results.filter(x => x.Name === "Test");
console.log(names); // [ { Name: 'Test', Age: 21, ChildrenObj: null } ]