hello currently i learning javascript alone, i have a question!
question
let arr = [
[
['firstName', 'Joe'],
['age', 42],
['gender', 'male'],
],
[
['firstName', 'Mary'],
['lastName', 'Jenkins'],
['age', 36],
['gender', 'female'],
],
[
['lastName', 'Kim'],
['age', 40],
['gender', 'female'],
],
];
This is what I wrote
function test5(arr) {
let result =[]
arr.map(function(ele){
for(let i=0; i < ele.length; i++){
if(ele[i][0]==='firstName'||ele[i][0]==='lastName'){
result.push(ele[i][1])
}
if(ele[i][0]==='age'){
result.push(ele[i][1])
}
}
})
return result
}
rule.
i want to get value like this let result = [ ["Joe", 42] [" Mary Jenkins", 36] , ["Kim", 40] ]
You can try to convert the nested array into Array of objects and carry out object iteration
let arr = [
[
["firstName", "Joe"],
["age", 42],
["gender", "male"]
],
[
["firstName", "Mary"],
["lastName", "Jenkins"],
["age", 36],
["gender", "female"]
],
[
["lastName", "Kim"],
["age", 40],
["gender", "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);