только перебором.
[{id: 1}, {id: 2}].find(item => item.id === 1) //{id: 1}
UPD
Можно попробовать нормализовать данные, т.е сделать плоский объект, который будет хранить значения нужного объекта и указывать на его индекс
const data = [
{ id: 1, title: 'foo', notUniqueKey: 1 },
{ id: 2, title: 'bar', notUniqueKey: 2 },
{ id: 3, title: 'baz', notUniqueKey: 1 },
]
const flatify = (data = [], uniqueKeys = []) => {
const o = {}
data.forEach((item, index) => {
Object
.keys(item)
.forEach(key => {
if (uniqueKeys.indexOf(key) !== -1) {
o[item[key]] = index
}
})
})
return o
}
const bindings = flatify(data, ['id', 'title'])
console.log(data[bindings[1]]) // по id
console.log(data[bindings['baz']]) // по title