Javascript 数组添加了额外的方括号

Javascript 数组添加了额外的方括号,javascript,arrays,object,Javascript,Arrays,Object,我的问题是分数,当我console.log整个对象时,分数部分不知何故显示了一组额外的括号 $(".submit").on("click", function() { var newRoommate = { "firstname": $('#first_name').val().trim(), "lastname": $('#last_name').val().trim(), "photo": $('#user_photo').val().trim(), s

我的问题是分数,当我console.log整个对象时,分数部分不知何故显示了一组额外的括号

$(".submit").on("click", function() {

  var newRoommate = {
    "firstname": $('#first_name').val().trim(),
    "lastname": $('#last_name').val().trim(),
    "photo": $('#user_photo').val().trim(),
    scores: [
      $('#question_1').val(),
      $('#question_2').val(),
      $('#question_3').val(),
      $('#question_4').val(),
      $('#question_5').val(),
      $('#question_6').val(),
      $('#question_7').val(),
      $('#question_8').val(),
      $('#question_9').val(),
      $('#question_10').val()
    ],
    scoresInput
  };
  console.log(newRoommate); // .... scores[]: Array(10)
为什么会显示分数[]:

理想情况下,我希望它在运行console.log时产生类似这样的结果

{
    firstname:"Ricky",
    lastname:"Bobby",
    photo:"http://www.topcelebsjackets.com/wp-content/uploads/2017/03/Talladega-Nights-Wonder-Bread-Ricky-Bobby-Jacket-6-570x708.jpg",
    scores:[
        5,
        1,
        4,
        4,
        5,
        1,
        2,
        5,
        4,
        1
      ]
  }

Chrome、Firefox、NodeJS等对同一
console.log
语句将产生不同的结果

这是因为
console.log
不是JS提供的功能,而是JS运行的每个环境所提供的不同实现。如果以原始JS为例,您会注意到,
控制台
甚至没有定义(比如
文档
窗口

在您的例子中,
scores[]:Array(10)
实际上是指您有一个
scores
键,它是一个数组,有10个元素

相关的:

这只是记录阵列时阵列的可视化。它实际上并没有向数组本身添加任何内容。您正在寻找
console.log(JSON.stringify(newRoommate))
maybe?很明显,这就是您的浏览器在记录数组对象时产生的结果。可能是浏览器首先执行scores.toString()的结果,但从远处很难分辨。谢谢,Adelin!我怀疑这是由浏览器生成的,这有助于澄清。