簡體   English   中英

如何通過 .filter() .filter()? JavaScript

[英]How can I .filter() through a .filter()? JavaScript

我正在嘗試將searchTag字段與數組student.tags動態比較,對於每個學生都居住在另一個名為students數組中

所以像下面這樣

students = [
  0: {
    name: "Cheddar",
    ...,
    tags: ["gravy","steak"]
  },

  ...,

  40: {
    name: "Stacy",
    ...,
    tags: ["gravy","grade"]
  },

]

我在過濾器中使用過濾器失敗了,並且努力返回標簽數組中具有該標簽的學生

我可以

students.filter((student) => {
            if ((student.tags.includes(searchTag))) {
              return student;
            } return '';
          })

但這僅在完全匹配時返回,我需要動態查找學生,即輸入“gra”返回學生 0 和 40,但“grad”僅返回 40

您可以使用filtersome的組合來過濾數組

 const students = [ { name: "Cheddar", tags: ["gravy", "steak"], }, { name: "Stacy", tags: ["gravy", "grade"], }, ]; let search = "gra"; const result = students.filter(({ tags }) => tags.some((tag) => tag.toLowerCase().includes(search.toLowerCase()))); console.log(result);

暫無
暫無

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

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