亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何通過過濾嵌套屬性返回父對象

如何通過過濾嵌套屬性返回父對象

HUH函數 2021-06-30 16:53:15
我正在嘗試使用嵌套對象過濾數組,但是在過濾子屬性時沒有返回父對象。let line = "xyz";let data = [    {        "header": {            "po_no": "P.O. Number"        },        "line": line    },    {        "header": {            "po_no": "Another P.O. Number"        },        "line": line    }];...data.filter(item => {   return item.header.po_no === 'P.O. Number' // Evaluates to true})item當它header.po_no匹配一個字符串時,我想返回整個。我不確定如何調試它,因為當返回條件評估為真時它不返回任何值。預期輸出:[{  "header": {    "po_no": "P.O. Number"  },  "line": line}]當子屬性使用過濾器匹配時,如何返回整個數組索引?
查看完整描述

3 回答

?
qq_花開花謝_0

TA貢獻1835條經驗 獲得超7個贊

.filter返回一個新數組;它不會修改數組。因此,如果您希望data獲得該輸出,則不會。但是,這將:


const expectedItems = data.filter(item => { 

  return item.header.po_no === 'P.O. Number' // Evaluates to true

});


查看完整回答
反對 回復 2021-07-15
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

您的代碼中有 ' 引號類型。過濾后的數據保存到變量中。


let line = "xyz";


let data = [

  {

    "header": {

    "po_no": "P.O. Number"

    },

    "line": line

  }, 

  {

    "header": {

    "po_no": "Another P.O. Number"

  },

  "line": line

  }

];


const filtered = data.filter(item => { 

  return item.header.po_no === 'P.O. Number' // Evaluates to true

})


查看完整回答
反對 回復 2021-07-15
?
一只甜甜圈

TA貢獻1836條經驗 獲得超5個贊

使用帶有箭頭函數的Array.filter可以最簡潔的方式解決這個問題。filter返回主數組和過濾后的項目,其中find只返回匹配的特定項目。


let line = "xyz";


let data = [{

    "header": { "po_no": "P.O. Number" },

    line

  },

  {

    "header": { "po_no": "Another P.O. Number" },

    line

  }

];


let filter = data.filter(d => d.header.po_no === 'P.O. Number') // return arr

let find = data.find(d => d.header.po_no === 'P.O. Number') // return just the item


console.log(filter)

console.log(find)

當處理箭頭函數并且您有直接返回時,您不需要打開函數括號......只需:


data.filter(d => d.header.po_no === 'P.O. Number')  // <-- no { return ... }

另請注意,由于您的屬性被調用,line您可以簡單地將您的對象定義為:


  {

    "header": { "po_no": "Another P.O. Number" },

    line  // <-- same prop name as your variable name

  }


查看完整回答
反對 回復 2021-07-15
  • 3 回答
  • 0 關注
  • 256 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號