Javascript 带有json.stringify replacer函数的嵌套键

Javascript 带有json.stringify replacer函数的嵌套键,javascript,Javascript,我有以下代码: const result = JSON.stringify({ drivingLicence: { documentNumber: '3333', countryOfIssue: 'UNITED_KINGDOM', regionOfIssue: 'UK' }, mothersMaidenName: 'AAAAA', nationalIdentityCard: {}, nationalInsuranceNumber: 'NW 26 52

我有以下代码:

const result = JSON.stringify({
  drivingLicence: {
    documentNumber: '3333',
    countryOfIssue: 'UNITED_KINGDOM',
    regionOfIssue: 'UK'
  },
  mothersMaidenName: 'AAAAA',
  nationalIdentityCard: {},
  nationalInsuranceNumber: 'NW 26 52 66 A',
  passport: {}
},(key, value) =>{
  console.log(typeof key + ' ' + key);
  return value;
});
我得到这个输出:

 console.log src/components/Submission/submissionTransformer.test.js:31
  string
console.log src/components/Submission/submissionTransformer.test.js:31
  string drivingLicence
console.log src/components/Submission/submissionTransformer.test.js:31
  string documentNumber
console.log src/components/Submission/submissionTransformer.test.js:31
  string countryOfIssue
console.log src/components/Submission/submissionTransformer.test.js:31
  string regionOfIssue
console.log src/components/Submission/submissionTransformer.test.js:31
  string mothersMaidenName
console.log src/components/Submission/submissionTransformer.test.js:31
  string nationalIdentityCard
console.log src/components/Submission/submissionTransformer.test.js:31
  string nationalInsuranceNumber
console.log src/components/Submission/submissionTransformer.test.js:31
  string passport
我不明白第一个输出来自哪里


它说密钥是一个空字符串。这是从哪里来的?

这是JSON.stringify的正常行为。发件人:

replacer
参数可以是函数或数组。作为一个函数,它接受两个参数,键和被字符串化的值。在其中找到密钥的对象作为替换者的this参数提供最初,它会被一个表示被字符串化对象的空键调用,然后它会被字符串化对象或数组上的每个属性调用

从:

  • 返回
    ?SerializeJSONProperty(空字符串,包装)

    这就是
    JSON.stringify
    返回的结果。需要一个
    和一个
    ,它使用替换函数将其转换为JSON。

    无法解释为什么它会传递一个空键和正在字符串化的对象。我对此感到非常困惑。谢谢你的澄清是的,我真的不明白为什么那会有用。