使用JavaScript函数从数组中获取单个对象[重复]

Posted

技术标签:

【中文标题】使用JavaScript函数从数组中获取单个对象[重复]【英文标题】:Get single object from array using JavaScript functions [duplicate] 【发布时间】:2016-11-23 17:28:59 【问题描述】:

我有这个对象数组:

var frequencies = [id:124,name:'qqq', 
                  id:589,name:'www', 
                  id:45,name:'eee',
                  id:567,name:'rrr'];

我需要通过id 值从上面的数组中获取一个对象。

例如我需要获取 id = 45 的对象。

我试过了:

var t = frequencies.map(function (obj)  return obj.id==45; );

但我没有得到想要的对象。

如何使用 javascript 原型函数来实现它?

【问题讨论】:

【参考方案1】:

如果您的 id 是独一无二的,您可以使用 find()

var frequencies = ["id":124,"name":"qqq","id":589,"name":"www","id":45,"name":"eee","id":567,"name":"rrr"];
                  
var result = frequencies.find(function(e) 
  return e.id == 45;
);

console.log(result)

【讨论】:

太棒了! find() 非常完美,因为它只返回数组中的单个条目 :-)【参考方案2】:

你需要filter() 而不是map()

var t = frequencies.filter(function (obj)  
    return obj.id==45; 
)[0];

【讨论】:

过滤方法在 InternetExplorer 中有效吗? @Michael: developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/… . 过滤方法返回数组(单个对象数组),知道如何返回对象而不是数组吗?

以上是关于使用JavaScript函数从数组中获取单个对象[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何在javascript中从多个数组中获取单个数组[重复]

是否可以将函数的所有参数作为该函数内的单个对象获取?

如何在Javascript中从数组中提取值

如何从javascript中的对象数组映射多个属性

Java - 从列表/数组中的每个对象获取单个属性的最简单方法?

如何从 Javascript 中的对象列表中获取键的值?