如何通过id查找对象?

Adi*_*tya 1 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' },
]
Run Code Online (Sandbox Code Playgroud)

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

以下代码返回undefined

_.find(object, id, 11);
Run Code Online (Sandbox Code Playgroud)

我期待这个结果:

{ id: '11', name: 'ron' , surname: 'lesner' , group: 'A' }
Run Code Online (Sandbox Code Playgroud)

Sur*_*yan 5

您需要传递数字的'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);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.4/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

你也可以使用纯 Javascript 而不是 lodash?

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);
Run Code Online (Sandbox Code Playgroud)