JS陣列物件以屬性的值來找尋的方法find&filter

JavaScript 中的陣列內的物件如下,若要以屬性: b 的值:6 來找出該陣列,有兩種方法。

const jsObjects = [
  {a: 1, b: 2}, 
  {a: 3, b: 4}, 
  {a: 5, b: 6}, 
  {a: 7, b: 8}
]

方法一: 使用 Array.prototype.filter()

const jsObjects = [
  {a: 1, b: 2}, 
  {a: 3, b: 4}, 
  {a: 5, b: 6}, 
  {a: 7, b: 8}
]

let result = jsObjects.filter(obj => {
  return obj.b === 6
})

結果回傳一個陣列,若沒找到則會回傳一個空陣列 []。

[
  { "a": 5, "b": 6 }
]

方法二: 使用 Array.prototype.find()

const jsObjects = [
  {a: 1, b: 2}, 
  {a: 3, b: 4}, 
  {a: 5, b: 6}, 
  {a: 7, b: 8}
]

let result = jsObjects.find(obj => {
  return obj.b === 6
})

console.log(result)

結果回傳一個物件,若沒找到則會回傳 undefined。

{ "a": 5, "b": 6 }

參考: Get JavaScript object from array of objects by value of property

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *