の配列から有効なオブジェクトを検索します。たとえば、私は次のように書くでしょう:私はjavascriptのコードに次の配列を持つオブジェクト
my_function("[email protected]")
この1人のユーザーを返します。これどうやってするの?
の配列から有効なオブジェクトを検索します。たとえば、私は次のように書くでしょう:私はjavascriptのコードに次の配列を持つオブジェクト
my_function("[email protected]")
この1人のユーザーを返します。これどうやってするの?
これは.find()
の方法です。だから、.find()
const users = [
{
id: 1,
email: '[email protected]',
password: 'password',
access_token: 'test_user_access_token'
},
{
id: 2,
email: '[email protected]',
password: 'password',
access_token: 'second_user_access_token'
}
];
console.log(users.find(u => u.email == '[email protected]'));
.email
プロパティを探している電子メールと比較した結果が返されます。
コールバックがtrue
(または真実)の結果を返すと、繰り返しが停止し、そのオブジェクトが.find()
から返されます。見つからない場合、.find()
はundefined
を返します。
これは、矢印関数の構文を使用することに注意してください。必要に応じて、従来の関数を使用できます。
console.log(users.find(function(u) { return u.email == '[email protected]' }));
Array#find機能を使用できます。関数に述語を渡すと、その述語に基づいて最初に一致した項目が返されます。
const users = [
{
id: 1,
email: '[email protected]',
password: 'password',
access_token: 'test_user_access_token'
},
{
id: 2,
email: '[email protected]',
password: 'password',
access_token: 'second_user_access_token'
}
]
function findByEmail(email) {
return users.find(x => x.email === email);
}
console.log(findByEmail('[email protected]'));
は常に良い昔ながらありますforループ:
const users = [{
id: 1,
email: '[email protected]',
password: 'password',
access_token: 'test_user_access_token'
},
{
id: 2,
email: '[email protected]',
password: 'password',
access_token: 'second_user_access_token'
}
]
function findUserByEmail(userList, desiredEmailAddress) {
for (let i = 0; i < userList.length; i++) {
var user = userList[i];
if (user.email === desiredEmailAddress) {
return user;
}
}
return null;
}
var desiredUser = findUserByEmail(users, '[email protected]');
if (desiredUser) {
console.log('User found by email:\n');
console.log(desiredUser);
} else {
console.log('No user found with searched email address');
}