如何解决如何在JavaScript中获取全名和年龄?
问题
76498.0_20150501
这就是我写的
selected_B_C
规则。
- 如果人的名字(全名)和全名都必须合并
我想获得这样的价值 let result = [[“ Joe”,42] [“ Mary Jenkins”,36],[“ Kim”,40]]
解决方法
我认为您的数据结构不正确。我假设您有一个类似这样的对象数组。
let arr = [
{
'firstName': 'Joe','age': 42,'gender': 'male',},{
'firstName': 'Mary','lastName': 'Jenkins','age': 36,'gender': 'female',{
'firstName': 'Kim','age': 40,}
];
然后您的测试功能将如下所示-
function test5(arr) {
let result=[];
arr.forEach(function(elm){
let entry={
'name':elm['firstName'],'age':elm['age']
};
// this if will put append last name if present in elm
if(elm['lastName']){
entry['name']=entry['name']+' '+elm['lastName'];
}
result.push(entry)
})
return result;
}
您将获得此结果-
[
{name:"Joe",age:42},{name:"Mary Jenkins",age:36},{name:"Kim",age:40},]
,
您可以尝试将嵌套数组转换为对象数组并进行对象迭代
let arr = [
[
["firstName","Joe"],["age",42],["gender","male"]
],[
["firstName","Mary"],["lastName","Jenkins"],36],"female"]
],[
["lastName","Kim"],40],"female"]
]
];
const createObject = a => {
const res = {};
for (let el of a) {
res[el[0]] = el[1];
}
return res;
};
const results = [];
arr.forEach(a => {
if (a && a.length !== 0) {
const destructedArray = createObject(a);
destructedArray["name"] = "";
if (destructedArray.firstName && destructedArray.lastName) {
destructedArray.name = `${destructedArray.firstName},${destructedArray.lastName}`;
} else if (destructedArray.lastName) {
destructedArray.name = `${destructedArray.lastName}`;
} else {
destructedArray.name = `${destructedArray.firstName}`;
}
results.push([destructedArray.name,destructedArray.age]);
}
});
console.log(results);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。