JSON数组仅接收for循环中的最后一个条目

时间:2019-07-19 00:02:38

标签: javascript arrays node.js json object

首先,您好,这是我第一次在这里寻求帮助,对于违反此论坛上的任何规定,我深感抱歉。

那是我的问题。

基本上,问题是当我尝试将Object类型的元素推入数组时,该数组中的值都是相同的,而我希望它们具有不同的值。

我已经尝试过在每个循环中创建新对象,还尝试过foreach循环和for ... in循环。

var date = new Date();
var dateTakenArr = [];
var jsonSend = {};

for(i=0;i<3;i++){
  var z = jsonSend;
  var k = date.toISOString().split("T")[0];
  z.date = k;
  console.log(z); <--- logs different value every time - works
  dateTakenArr.push(z);
  date.setDate(date.getDate() + 1);
}

res.send(dateTakenArr);

我期望数组中的每个对象具有与服务器控制台中记录的值不同的值:

{ date: '2019-07-18' } 
{ date: '2019-07-19' } 
{ date: '2019-07-20' }

作为响应发送的是:

[
    {
        "date": "2019-07-20"
    },
    {
        "date": "2019-07-20"
    },
    {
        "date": "2019-07-20"
    }
]

通过邮递员,这是for循环中的最后一个值。 谢谢您的帮助!

0 个答案:

没有答案