如何使用数组函数获取数组的所有键和值

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]}`);
}

有没有办法通过 mapfilterfindreduce 来实现?我好像拿不出钥匙

答案:

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}));