簡體   English   中英

如何使用 javascript 中的過濾器根據性別過濾出對象數組?

[英]How to filter out array of objects based on gender using filter in javascript?

下面是我試圖過濾掉男性和女性數組的代碼。 但它似乎在男性和女性變量中再次返回整個數組。

  const male = await familyTree.filter(async(uncle) => {uncle.gender === 'Male'}); 

  const female = await familyTree.filter(async(aunt) => {aunt.gender === 'Female'});

我的對象數組:

var familyTree=  [
  {
    name: 'Ish',
    gender: 'Male',
    grandfather: 'null',
    grandmother: 'null',
    father: 'Shan',
    mother: 'Anga',
    wife: {}
  },
  {
    name: 'Vich',
    gender: 'Male',
    grandfather: 'null',
    grandmother: 'null',
    father: 'Shan',
    mother: 'Anga',
    wife: {
      name: 'Lika',
      husband: 'Vich',
      fil: 'Shan',
      mil: 'Anga',
      children: [Array]
    }
  },
  {
    name: 'Aras',
    gender: 'Male',
    grandfather: 'null',
    grandmother: 'null',
    father: 'Shan',
    mother: 'Anga',
    wife: {
      name: 'Chitra',
      husband: 'Aras',
      fil: 'Shan',
      mil: 'Anga',
      children: [Array]
    }
  },
  {
    name: 'Satya',
    gender: 'Female',
    grandfather: 'null',
    grandmother: 'null',
    father: 'Shan',
    mother: 'Anga',
    husband: 'Vyan',
    children: [ [Object], [Object], [Object] ]
  }
]

當我在控制台中打印男性和女性時,它會再次返回整個數組而不過濾它們。 可能是什么原因?

如果在箭頭 function 中使用{} ,則需要從中return結果。

我還刪除了async-await ,如果有必要,請重新引入它們。

const male = familyTree.filter((uncle) => {
    return uncle.gender === 'Male'
});

const female = familyTree.filter((aunt) => {
    return aunt.gender === 'Female'
});

對於通過 JavaScript 中的數組進行過濾,您可以使用簡化的方式

var males = familyTree.filter(prop => {
    return prop.gender === 'Male'
}) 

var females = familyTree.filter(prop => {
    return prop.gender === 'Female'
}) 

當使用花括號將 function body {} 括起來時,需要使用 return 關鍵字返回一個值,

const male = familyTree.filter(uncle => {return uncle.gender === 'Male'});

或者如果您刪除花括號:

const male = familyTree.filter(uncle => uncle.gender === 'Male')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM