【问题标题】:From an array of objects, How to get an object's valueB if that object's valueA matches a variable?从一个对象数组中,如何获取一个对象的值,该对象的值与一个变量匹配?
【发布时间】:2019-10-18 04:47:39
【问题描述】:

假设你有一个对象数组。

let dogs = [
  { 
    colour: "blue",
    breed: "poodle"
  },
  { 
    colour: "yellow",
    breed: "poodle"
  },
  { 
    colour: "red",
    breed: "laborator"
  }
];

按品种匹配时如何获得颜色?

我试过了:

let myFavouriteColour = dogs.find(dog => {
   if (dog.breed === "laborator") return dog.colour
});

这会返回一个符合上述条件的对象;我只希望它返回 colour 属性中的值。

【问题讨论】:

  • 我不认为“劳动者”是一种犬种。您的意思可能是“拉布拉多”。
  • 这是你穿越“实验室”和“电梯”时得到的结果

标签: javascript arrays find


【解决方案1】:

一旦你.find匹配,返回true(或者只返回一个相等测试),然后访问.find之外匹配对象的属性:

let dogs = [
  { 
    colour: "blue",
    breed: "poodle"
  },
  { 
    colour: "yellow",
    breed: "poodle"
  },
  { 
    colour: "red",
    breed: "laborator"
  }
];

const laborator = dogs.find(dog => dog.breed === "laborator");
if (laborator) {
  const myFavouriteColour = laborator.colour;
  console.log(myFavouriteColour);
}

【讨论】:

    【解决方案2】:

    Array.find() 是 JavaScript 中的一个内置函数,用于获取数组中第一个元素的对象(或值,如果它是一个值数组)满足提供的条件。您可以访问返回结果的属性。

    let dogs = [
      { 
        colour: "blue",
        breed: "poodle"
      },
      { 
        colour: "yellow",
        breed: "poodle"
      },
      { 
        colour: "red",
        breed: "laborator"
      }
    ];
    
    let myFavouriteColour = dogs.find(dog => dog.breed === "laborator").colour;
    console.log(myFavouriteColour);

    【讨论】:

    • 我误解了 array.find() 返回的内容;我理解它是返回一个值,而不是一个对象。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-04
    • 1970-01-01
    • 2020-09-17
    • 2016-12-09
    • 1970-01-01
    • 2015-04-18
    • 2021-03-24
    相关资源
    最近更新 更多