簡體   English   中英

在對象數組中查找元素

[英]Find an element in an array of objects

數組看起來是這樣的:

var arr = 
[{name: '1112B', 
  subname: 
   [
    {name: 'sub_1112B'}, 
    {name: 'sub_1112BA'}
   ]
  }, 
 {name: '2112B', 
  subname: 
   [
    {name: 'sub_2112B'},
    {name: 'sub_2112BA'}
   ]
 }];

執行以下代碼后: arr.map(it => it.subname).find(i => i.name == 'sub_2112BA')我沒有定義,但它應該是 '2112B'。

我究竟做錯了什么?

arr.map(it => it.subname)將創建子名的嵌套數組,而subname () 將返回undefined因為它遍歷嵌套數組,您可以使用.flat()然后使用find但它不會' t 返回包含子名稱的subname ,因為您在subname數組中進行迭代,因此您可以過濾數組的對象並在每個子名稱數組上使用 find 來檢查是否存在所需的name

 arr = [{name: '1112B', subname: [ {name: 'sub_1112B'}, {name: 'sub_1112BA'} ] }, {name: '2112B', subname: [ {name: 'sub_2112B'}, {name: 'sub_2112BA'} ] }]; res=arr.filter(x=>(x.subname.find(y=>y.name=="sub_2112B"))) console.log(res)

find()中使用類型安全的等於===

暫無
暫無

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

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