如何通过id查找对象?

时间:2018-01-18 11:30:19

标签: javascript arrays lodash

我有这个对象集合:

const objects = [
  { id: '11', name: 'ron', surname: 'lesner', group: 'A' },
  { id: '12', name: 'don', surname: 'lesner', group: 'B' },
  { id: '13', name: 'ton', surname: 'lesner', group: 'A' },
]

我需要使用Lodash返回匹配id的对象。

以下代码返回undefined

_.find(object, id, 11);

我期待这个结果:

{ id: '11', name: 'ron' , surname: 'lesner' , group: 'A' }

2 个答案:

答案 0 :(得分:3)

您需要传递'11' - 11号码的字符串表示形式,因为您的ID属于string类型。使用Lodash#find



const object = [
     {id: '11', name: 'ron' , surname: 'lesner' , group: 'A'},
     {id: '12', name: 'don' , surname: 'lesner' , group: 'B'},
     {id: '13', name: 'ton' , surname: 'lesner' , group: 'A'}
];

const found = _.find(object , ['id', '13']);

console.log(found);

<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
&#13;
&#13;
&#13;

您还可以使用纯Javascript代替lodash吗?

&#13;
&#13;
const object = [
     {id: '11', name: 'ron' , surname: 'lesner' , group: 'A'},
     {id: '12', name: 'don' , surname: 'lesner' , group: 'B'},
     {id: '13', name: 'ton' , surname: 'lesner' , group: 'A'}
];

const found = object.find(item => item.id === '11');

console.log(found);
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您没有按照要使用的lodash find功能使用它。请在https://github.com/lodash/lodash/blob/master/find.js

查看源代码和内容

同样对于一些如此微不足道的事情,可以认为如果你不能因为极端性能或其他原因的需要而激励图书馆使用,你应该更好地使用原生数组函数;并且也不要调用数组Object。它会让你的代码混乱。