2017-09-27 9 views

答えて

2

これは.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]' })); 
3

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]'));

1

は常に良い昔ながらあります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'); 
 
}

関連する問題