从数组返回一个对象

时间:2020-12-22 16:21:49

标签: javascript arrays object storage

我有一个对象数组;

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 },
];

我想写一个函数,这个函数需要一个字符串作为参数并返回 Rivers 数组中 name 属性等于 传递给它的字符串(如果有)。

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

2 个答案:

答案 0 :(得分:4)

改用 .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"));

答案 1 :(得分:1)

压缩版本:

  for(Comment comment:comments){
    if(comment.getId().equals(foundComment.getId())){
    comment.setContent(foundComment.getContent());
    }         
   }
相关问题