从数组中返回一个对象

returning an object from array

我有一个对象数组;

var rivers = [
  { name: "Amazon", continent: "South America", lengthInKilometers: 6575 },
  { name: "Danube", continent: "Europe", lengthInKilometers: 2850 },
  { name: "Ganges", continent: "Asia", lengthInKilometers: 2704 },
  { name: "Mekong", continent: "Asia", lengthInKilometers: 4350 },
  { name: "Mississippi", continent: "North America" },
  { name: "Nile", continent: "Africa", lengthInKilometers: 6650 },
  { name: "Volga", continent: "Europe", lengthInKilometers: 3530 },
];

我想写一个函数,这个函数需要一个字符串作为参数,returns rivers 数组中名称 属性 等于的对象 传递给它的字符串(如果有的话)。

function getRiverByName(strTest) {
  let answer = rivers.filter(function (river) {
    return river.name === strTest;
  });
  return answer;
}

如何将此函数的输出,即数组存储到对象中 我可以做这样的事情吗?

    function getRiverByName(strTest) {
  
     var obj = {
        let answer=rivers.filter(function(river){
        return river.name===strTest;
    })
      }
       return obj; 
   }

改用.find

var rivers =[
  {name: "Amazon", continent: "South America", lengthInKilometers: 6575},
  {name: "Danube", continent: "Europe", lengthInKilometers: 2850},
  {name: "Ganges", continent: "Asia", lengthInKilometers: 2704},
  {name: "Mekong", continent: "Asia", lengthInKilometers: 4350},
  {name: "Mississippi", continent: "North America"},
  {name: "Nile", continent: "Africa", lengthInKilometers: 6650},
  {name: "Volga", continent: "Europe", lengthInKilometers: 3530}
];

function getRiverByName(strTest) {
  let answer = rivers.find(function(river){
    return river.name===strTest;
  });
  return answer;
}

console.log(getRiverByName("Volga"));

压缩版:

const getRiverByName = (strTest) => rivers.find( r => r.name === strTest)