首页 > 解决方案 > 如何获取导出数组的值

问题描述

我有以下由 DocuSign API 生成的数组:

const signers = [
  exports {
    email: 'email1@gmail.com',
    name: 'Test Name One',
    recipientId: 'signer_1',
    routingOrder: '1'
  },
  exports {
    email: 'email2@gmail.com',
    name: 'Test Name Two',
    recipientId: 'signer_2',
    routingOrder: '2'
  },
  exports {
    email: 'email3@gmail.com',
    name: 'Test Name Three',
    recipientId: 'signer_3',
    routingOrder: '3'
  }
]

我需要在此数组中获取对象的索引,其中 recipientId === 'signer_2' (例如),并尝试了以下操作:

const signerKey = signers.filter(signerObj => {
  console.log(signerObj) // returns "exports { ...email, name, etc }"
  console.log(Object.keys[signerObj]) // returns undefined
  console.log(signerObj.exports.recipientId) // returns undefined
  console.log(typeof signerObj) // returns object
  return signerObj.recipientId === 'signer_2' // returns undefined
})

exports由于它们不是实际对象,我该如何处理在其中查找数据?

标签: javascriptarraysobjectfilter

解决方案


出于某种原因,当我使用 JSON.stringify() 然后 JSON.parse 我能够正常处理所有内容:

const stringified = JSON.stringify(signers)
const signersObject = JSON.parse(stringified)

@casenonsensitive 推荐使用我还没有研究过的 lo-dash 框架,但它可能是一个更好的解决方案。


推荐阅读