簡體   English   中英

如何從 JSON object 中獲取匹配的鍵值?

[英]How to fetch matching key values from JSON object?

我有一個帶有以下數據的 object:

obj =
{
  key: 'mykey1597855209',
  integrity: 'sha512-T9JW=='
}
{
  key: 'mykey159785520915978552101597855212',
  integrity: 'sha512-T9JWj=='
}
{
  key: 'mykey15978552091597855210',
  integrity: 'sha512-lcddfd=='
}
{
  key: 'otherkey15978552091597855210',
  integrity: 'sha512-abcdfd=='
}

當我執行console.log(typeof obj)時,我得到object為 output

我只想將唯一的integrity值存儲在鍵值中具有mykey*key value的數組中

所需的 Output:

[ 'sha512-T9JWj==', 'sha512-lcddfd==' ]

代碼:

var output = [];

for (var key in obj) {
  if(obj[key] === 'mykey') {
    output.push(obj[integrity])
  }
}

console.log(output.join(', '))

您首先filter數組以僅獲取具有匹配鍵值的對象, map每個結果元素為其integrity屬性,從該數組創建一個Set ,最后使用擴展語法以數組形式獲取結果。

 const arr = [ { key: 'mykey1597855209', integrity: 'sha512-T9JWj==' }, { key: 'mykey159785520915978552101597855212', integrity: 'sha512-T9JWj==' }, { key: 'mykey15978552091597855210', integrity: 'sha512-lcddfd==' }, { key: 'otherkey15978552091597855210', integrity: 'sha512-abcdfd==' }]; const res = [...new Set(arr.filter(({key})=>/mykey/.test(key)).map(({integrity})=>integrity))]; console.log(res);

暫無
暫無

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

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