Javascript 数组对象值未显示

Javascript 数组对象值未显示,javascript,node.js,json,Javascript,Node.js,Json,我试图清理一些数据,并将一个对象数组放在一个对象中。这是我的对象数组 职业状态: [ { gp: '35', gs: '34', mpg: '33.2', fg: '.515', tp: '1.5', ft: '1.4', rpg: '0.5', apg: '0.7', bpg: '.692', spg: '0.7', ppg: '3.6' }, { gp: '22', gs: '

我试图清理一些数据,并将一个对象数组放在一个对象中。这是我的对象数组

职业状态:

[
  {
    gp: '35',
    gs: '34',
    mpg: '33.2',
    fg: '.515',
    tp: '1.5',
    ft: '1.4',
    rpg: '0.5',
    apg: '0.7',
    bpg: '.692',
    spg: '0.7',
    ppg: '3.6'
  },
  {
    gp: '22',
    gs: '22',
    mpg: '36.7',
    fg: '.504',
    tp: '5.5',
    ft: '2.4',
    rpg: '1.7',
    apg: '2.0',
    bpg: '.822',
    spg: '1.5',
    ppg: '6.5'
  },
  {
    gp: '57',
    gs: '56',
    mpg: '34.6',
    fg: '.509',
    tp: '3.1',
    ft: '1.8',
    rpg: '1.0',
    apg: '1.2',
    bpg: '.775',
    spg: '1.0',
    ppg: '4.7'
  }
]
下面是我如何将careerStats对象数组放置在玩家数组中的

玩家:

player.push(
    {
        name: "",
        image: "",
        position: "",
        description: "",
        dob: "",
        hometown: "",
        country: "",
        height_feet: "",
        height_inches: "",
        weight: "",
        season: careerStats
    });
这不会返回任何类型的错误;但是,当我将播放器登录到控制台时,会显示以下内容:

[
  {
    name: '',
    image: '',
    position: '',
    description: '',
    dob: '',
    hometown: '',
    country: '',
    height_feet: '',
    height_inches: '',
    weight: '',
    season: [ [Object], [Object], [Object] ]
  }
]
由于我知道数据在careerStats数组中时是正常的,这就引出了两个问题:

  • 我是否做了一些错误的事情,以[[Object]、[Object]、[Object]]的形式接收此输出? 答案:通过更改为console.log(JSON.stringify(player))解决
  • 如果这是预期的输出,并且数据确实存在,我如何将其写入JSON文件,在该文件中显示数据而不是“[object]”


  • 提前感谢您的帮助

    在节点中写入JSON文件,然后可能使用节点文件系统

  • 使用以下命令将对象转换为JSON

  • 使用创建JSON文件-下面将在名为
    player.JSON的目录中创建一个JSON文件,其中player数据存储为JSON

    fs.writeFileSync('player.json', playerJSON);
    

  • 要在节点中写入JSON文件,可能需要使用节点文件系统

  • 使用以下命令将对象转换为JSON

  • 使用创建JSON文件-下面将在名为
    player.JSON的目录中创建一个JSON文件,其中player数据存储为JSON

    fs.writeFileSync('player.json', playerJSON);
    
  • console.log()
    最多只能显示对象结构的两个级别,其他任何内容都会像这样“折叠”

    您可以使用:

    或:

    或:

    但是,请注意
    JSON.stringify()
    有一些限制,例如无法处理循环引用或根本不显示函数

    我会选择
    console.dir()
    ,因为它已经在内部使用了
    util.inspect
    ,如文档中所述:

    obj
    上使用
    util.inspect()
    ,并将生成的字符串打印到
    stdout
    。j

    console.log()
    最多只能显示对象结构的两个级别,其他任何内容都会像这样“折叠”

    您可以使用:

    或:

    或:

    但是,请注意
    JSON.stringify()
    有一些限制,例如无法处理循环引用或根本不显示函数

    我会选择
    console.dir()
    ,因为它已经在内部使用了
    util.inspect
    ,如文档中所述:

    obj
    上使用
    util.inspect()
    ,并将生成的字符串打印到
    stdout
    。j


    您可以单击控制台中的对象来展开它们,尝试
    console.log(JSON.stringify(player))
    您应该可以看到您期望的结果。
    console.log
    在打印通用类型字符串之前,只会递归到数组或对象中这么多级别。这样,当您只想查看一些顶级字段时,就可以打印具有深层嵌套数据的复杂对象,而不会占用数千行。@Barmar-谢谢您提供的信息,我不知道他只限于console.log@Abion47-和你一样,我今天早上学到了一些有价值的东西。你可以点击控制台中的对象来展开它们,试试
    console.log(JSON.stringify(player))
    你应该会看到你期望的结果。
    console.log
    在打印泛型字符串之前只会递归到数组或对象中很多级别。这样,当您只想查看一些顶级字段时,就可以打印具有深层嵌套数据的复杂对象,而不会占用数千行。@Barmar-谢谢您提供的信息,我不知道他只限于console.log@阿比翁47-你也一样,今天早上我学到了一些有价值的东西。
    fs.writeFileSync('player.json', playerJSON);
    
    console.dir(player, { depth: null });
    
    const util = require('util')
    
    console.log(util.inspect(player, { depth: null });
    
    console.log(JSON.stringify(player, null, 2));