var attributeList = [];
var attributeEmail = {
Name : 'email',
Value : 'email@mydomain.com'
};
var attributePhoneNumber = {
Name : 'phone_number',
Value : '+15555555555'
};
attributeList.push(attributeEmail);
attributeList.push(attributePhoneNumber);
结果是:
Attributes: Array(2)
1: {Name: "phone_number", Value: "+15555555555"}
2: {Name: "email", Value: "email@mydomain.com"}
我需要在attributeList
中找到电子邮件
var email = getEmail(attributeList);
console.log(email); // email@mydomain.com
private getEmailAttribute(attributeList) {
// Name: "email"...
return ????;
}
答案 0 :(得分:3)
您可以使用filter()
,map()
和shift()
来获取电子邮件。此方法是安全的,它不会抛出,如果找不到电子邮件对象,则会返回undefined
。
const attributeList = [];
const attributeEmail = {
Name : 'email',
Value : 'email@mydomain.com'
};
const attributePhoneNumber = {
Name : 'phone_number',
Value : '+15555555555'
};
attributeList.push(attributeEmail);
attributeList.push(attributePhoneNumber);
function getEmailAttribute(attributes) {
return attributes
.filter(attr => attr.Name === 'email')
.map(attr => attr.Value)
.shift();
}
const email = getEmailAttribute(attributeList);
console.log(email);
答案 1 :(得分:1)
答案 2 :(得分:1)
您可以将.find
与destructuring assignment一起使用,以获取具有Name
电子邮件的对象。然后,一旦检索到对象,就可以使用.Value
属性获取电子邮件。
请参见以下示例:
function getEmailAttribute(attributeList) {
return attributeList.find(({Name}) => Name === "email").Value;
}
var attributeList = [{Name: 'email', Value: 'email@mydomain.com'},{Name: 'phone_number', Value: '+15555555555'}];
console.log(getEmailAttribute(attributeList));
作为旁注。要使用javascript声明函数,请不要使用private
关键字。相反,您可以像上面一样使用function
关键字。