标题可能会响起,但下面会解释更多。
我需要知道一个项是否包含在数组对象中:
[
{ id: 12345, name: "Bob", email: "bob@builder.com" },
...
{ id: 13456, name: "job", email: "joe@farm.com" }
]
英语:如果此email
出现,请告诉我id
users = User.all
users.any?{|u| u.email == "bob@builder.com"} # true
那是真的。现在,如何获得用户的id
“12345”?请注意,我不会知道id
。
答案 0 :(得分:0)
由于您似乎在使用ActiveRecord,因此查询数据库中的电子邮件会更快:
@Override
public Observable<Page> search(@NonNull final String query) {
return Observable.create(new Observable.OnSubscribe<Page>() {
@Override
public void call(Subscriber<? super Page> subscriber) {
Realm realm = null;
try {
realm = mRealmManager.getRealm();
final Page page = realm.where(Page.class).equalTo("query", query).findFirst();
if(page != null && page.isLoaded() && page.isValid()) {
Log.i("data from", "realm");
subscriber.onNext(page);
} else {
Log.i("data is", "empty");
Observable.empty();
}
subscriber.onCompleted();
} finally {
if(realm != null) {
mRealmManager.closeRealm(realm);
}
}
}
});
}
答案 1 :(得分:0)
如果您有哈希数组,可以尝试这样:
arr.map do |h|
h[:id] if h[:email] == "bob@builder.com"
end.compact
它将在满足条件的所有哈希值的数组中返回id的值。