如何使用数组函数获取数组的所有键和值
How to get all keys and values of an array using array functions
使用这个数组
const university = [
{ Students: 4, Lecturers: 15, Faculty: 'Mathematics' },
{ Students: 4, Lecturers: 15, Faculty: 'English' },
{ Students: 4, Lecturers: 15, Faculty: 'Science'}
]
我想 return 具有特定键的所有值:
const students = [
{ Students: 4 },
{ Students: 4 },
{ Students: 4 }
]
我知道我可以用 for in 循环来做到这一点:
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
有没有办法通过 map
、filter
、find
或 reduce
来实现?我好像拿不出钥匙
答案:
university.map(data => `Students: ${data.Students}`);
您可以提取到一个函数。
getByKey(arr, val) {
arr.map(data => `${val}: ${data[val]}`);
}
getKey(university, Faculty)
您可以使用 map
并且在 map
中您可以传递数组中的键(您想要选择的)并使用 fromEntries
来形成对象。
const university =
[ { Students: 4, Lecturers: 15, Faculty: 'Mathematics' }, { Students: 4,Lecturers: 15, Faculty: 'English'} , { Students: 4, Lecturers: 15, Faculty: 'Science' } ];
const getGivenKeys=(arr,keys)=> arr.map(o=>Object.fromEntries(keys.map(k=>[k,o[k]])));
console.log(getGivenKeys(university, ['Students', 'Faculty']));
console.log(getGivenKeys(university, ['Students']));
在这种情况下,您的关键是学生。因此,您可以只使用该键创建一个映射和 return 一个新对象。
const university = [{
Students: 46,
Lecturers: 2,
Faculty: 'Mathematics'
}, {
Students: 65,
Lecturers: 6,
Faculty: 'English'
}, {
Students: 48,
Lecturers: 4,
Faculty: 'Science'
}]
let result = [];
result = university.map(obj => {
return {
Students: obj.Students
}
});
console.log(result)
您可以将 map() 与干净的解决方案一起使用:
const students = university.map(function(r){
return {"Students" : r.Students};
});
使用 map
函数,但没有 return
关键字:
university.map(uni=>({Students:uni.Students}));
使用这个数组
const university = [
{ Students: 4, Lecturers: 15, Faculty: 'Mathematics' },
{ Students: 4, Lecturers: 15, Faculty: 'English' },
{ Students: 4, Lecturers: 15, Faculty: 'Science'}
]
我想 return 具有特定键的所有值:
const students = [
{ Students: 4 },
{ Students: 4 },
{ Students: 4 }
]
我知道我可以用 for in 循环来做到这一点:
for (const property in object) {
console.log(`${property}: ${object[property]}`);
}
有没有办法通过 map
、filter
、find
或 reduce
来实现?我好像拿不出钥匙
答案:
university.map(data => `Students: ${data.Students}`);
您可以提取到一个函数。
getByKey(arr, val) {
arr.map(data => `${val}: ${data[val]}`);
}
getKey(university, Faculty)
您可以使用 map
并且在 map
中您可以传递数组中的键(您想要选择的)并使用 fromEntries
来形成对象。
const university =
[ { Students: 4, Lecturers: 15, Faculty: 'Mathematics' }, { Students: 4,Lecturers: 15, Faculty: 'English'} , { Students: 4, Lecturers: 15, Faculty: 'Science' } ];
const getGivenKeys=(arr,keys)=> arr.map(o=>Object.fromEntries(keys.map(k=>[k,o[k]])));
console.log(getGivenKeys(university, ['Students', 'Faculty']));
console.log(getGivenKeys(university, ['Students']));
在这种情况下,您的关键是学生。因此,您可以只使用该键创建一个映射和 return 一个新对象。
const university = [{
Students: 46,
Lecturers: 2,
Faculty: 'Mathematics'
}, {
Students: 65,
Lecturers: 6,
Faculty: 'English'
}, {
Students: 48,
Lecturers: 4,
Faculty: 'Science'
}]
let result = [];
result = university.map(obj => {
return {
Students: obj.Students
}
});
console.log(result)
您可以将 map() 与干净的解决方案一起使用:
const students = university.map(function(r){
return {"Students" : r.Students};
});
使用 map
函数,但没有 return
关键字:
university.map(uni=>({Students:uni.Students}));