Javascript 在数组的开头添加一个对象

Javascript 在数组的开头添加一个对象,javascript,Javascript,我知道这很容易,但我不太明白 function submitNewComment() { var noo = 0; //array index var userName = document.getElementById('user-name').value; //textbox var commentBox = document.getElementById('main-comment').value; //textbox var now = new Date();

我知道这很容易,但我不太明白

function submitNewComment() {
   var noo = 0; //array index
   var userName = document.getElementById('user-name').value; //textbox
   var commentBox = document.getElementById('main-comment').value; //textbox
   var now = new Date();
   mili = now.getTime(); //time in milisecond
   var element = [];
   element.push({
      "no": noo, //array index
      "username": userName,
      "date": mili,
      "body": commentBox,
      "likes": "0",
      "parent": null
   });
console.log(element);
noo++;
console.log(noo);
}
简而言之,我需要添加一个变量,创建一个包含对象的数组。 当我运行这个函数时,它并不像我希望的那样工作。我错过了一些东西

当您第二次运行该函数时,问题就存在了。 理想情况下,应该创建第二个对象,但第一个对象会得到更新。因此,在第二次运行结束时以及之后每隔一次运行结束时,数组的长度保持为1。

使用
.unshift(object)
预加载到数组

  • 文件:
设a=[1,2,3,4];
控制台日志(a);
a、 不移位(5);
控制台日志(a)使用
.unshift(对象)
预先添加到数组

  • 文件:
设a=[1,2,3,4];
控制台日志(a);
a、 不移位(5);

控制台日志(a)您有一些问题。你需要有一种方法在页面加载后获取数据

  • 你需要一个按钮或一些其他的行动方法
  • 您将自己与对象创建混淆。如果它是一个用于创建对象的工厂函数,那么“this.[label]”是有效的,但是如果您只是将表单数据作为对象推送到数组中,那么请按照下面的建议执行。我所做的有意义吗
  • 我也没有在这里更改它,但是以毫秒为单位创建日期的最佳方法是date.now()。继续使用这种方法,它将缩短并简化您的代码
  • 有问题吗
  • var元素=[];
    var btn=document.getElementById('btn');
    btn.addEventListener('click',submitNewComment);
    函数submitNewComment(){
    var userName=document.getElementById('user-name')。值
    var commentBox=document.getElementById('main-comment')。值
    var now=新日期();
    var millides=now.getTime();
    元素。取消移位({
    否:“测试”,
    用户名:用户名,
    日期:毫秒,
    正文:评论框,
    喜欢:0,
    父项:null,
    });
    控制台日志(元素);
    }
    
    先生
    提交
    
    您有一些问题。你需要有一种方法在页面加载后获取数据

  • 你需要一个按钮或一些其他的行动方法
  • 您将自己与对象创建混淆。如果它是一个用于创建对象的工厂函数,那么“this.[label]”是有效的,但是如果您只是将表单数据作为对象推送到数组中,那么请按照下面的建议执行。我所做的有意义吗
  • 我也没有在这里更改它,但是以毫秒为单位创建日期的最佳方法是date.now()。继续使用这种方法,它将缩短并简化您的代码
  • 有问题吗
  • var元素=[];
    var btn=document.getElementById('btn');
    btn.addEventListener('click',submitNewComment);
    函数submitNewComment(){
    var userName=document.getElementById('user-name')。值
    var commentBox=document.getElementById('main-comment')。值
    var now=新日期();
    var millides=now.getTime();
    元素。取消移位({
    否:“测试”,
    用户名:用户名,
    日期:毫秒,
    正文:评论框,
    喜欢:0,
    父项:null,
    });
    控制台日志(元素);
    }
    
    先生
    提交
    
    您可以使用
    Array.prototype.unshift()
    将元素添加到数组的开头。此方法返回数组的新长度

    var元素=[];
    元素。推({
    “否”:“noo”,//临时变量
    “用户名”:“用户名”,
    “日期”:“米利”,
    “正文”:“评论框”,
    “喜欢”:“0”,
    “父项”:空
    });
    元素push({“something”:“else”});
    var newLen=element.unshift({“object”:“one”});
    控制台日志(元素);
    
    log(“元素数组的新长度:“+newLen”)您可以使用
    Array.prototype.unshift()
    将元素添加到数组的开头。此方法返回数组的新长度

    var元素=[];
    元素。推({
    “否”:“noo”,//临时变量
    “用户名”:“用户名”,
    “日期”:“米利”,
    “正文”:“评论框”,
    “喜欢”:“0”,
    “父项”:空
    });
    元素push({“something”:“else”});
    var newLen=element.unshift({“object”:“one”});
    控制台日志(元素);
    
    log(“元素数组的新长度:“+newLen”)这是什么。没有对象之外的代码?请描述好这个问题。你哪里出错的?这是一些奇怪的代码。此
    指的是什么?除非您以构造函数的身份调用
    submitNewComment
    ,否则
    将成为
    窗口
    。另外,您希望
    元素[this.noo]
    是什么
    this.noo
    没有定义,因此它将是
    undefined
    .duplicate of??对象之外的
    this.noo
    可能重复?请详细描述问题。你哪里出错的?这是一些奇怪的代码。此
    指的是什么?除非您以构造函数的身份调用
    submitNewComment
    ,否则
    将成为
    窗口
    。另外,您希望
    元素[this.noo]
    是什么
    this.noo在任何地方都没有定义,因此它将是
    未定义的
    。重复的??可能重复的@brk@hossein@angel-politis@steve drake@misterhtmlcss@simranjit singh@hev1问题陈述已更新,以提供更多澄清。问题在于函数中声明的语句
    var element=[]
    。@brk@hossein@angel-politis@steve drake@misterhtmlcss@simranjit singh@hev1问题陈述已更新,以提供更多澄清。问题在于函数中声明的语句
    var element=[]
    。我最终在函数中声明了变量。我最终在函数中声明了变量。