【问题标题】:Javascript loop and insert new objectJavascript循环并插入新对象
【发布时间】:2016-08-15 04:08:45
【问题描述】:

我用ajax得到这个数据:

[{"id":125,"price":225,"start":"Tue, 26 Apr 2016 00:00:00 +0000","user_id":8},{"id":124,"price":200,"start":"Wed, 27 Apr 2016 00:00:00 +0000","user_id":8},{"id":121,"price":67,"start":"Sat, 23 Apr 2016 00:00:00 +0000","user_id":8},{"id":114,"price":45,"start":"Sun, 08 May 2016 00:00:00 +0000","user_id":9},{"id":113,"price":55,"start":"Sun, 24 Apr 2016 00:00:00 +0000","user_id":8},{"id":111,"price":55,"start":"Wed, 01 Jun 2016 00:00:00 +0000","user_id":11},{"id":110,"price":53,"start":"Fri, 03 Jun 2016 00:00:00 +0000","user_id":8},{"id":107,"price":53,"start":"Wed, 03 Aug 2016 00:00:00 +0000","user_id":8},{"id":106,"price":55,"start":"Mon, 01 Aug 2016 00:00:00 +0000","user_id":8},{"id":105,"price":53,"start":"Tue, 16 Aug 2016 00:00:00 +0000","user_id":8},{"id":104,"price":55,"start":"Thu, 21 Apr 2016 00:00:00 +0000","user_id":11},{"id":101,"price":57,"start":"Wed, 17 Aug 2016 00:00:00 +0000","user_id":8}]

所以你可以看到有start 数据。 我也有:

var start = '04/17/2016 12:00 am';
var end = '09/20/2016 12:01 am';

现在我需要从startend 逐日循环,检查日期(日期)是否存在于 json 中,如果没有将新数据添加到 json 中:

{"id":0,"price":100,"start":"DATE","user_id":0}

最好的方法是什么?

更新: 我从头到尾创建了一个新的日期,但现在我需要将 json 放入新数组中:http://jsbin.com/qekijumobe/edit?js,output

【问题讨论】:

  • 可能有某种循环。
  • 嗯,是的,但这里有问题,因为我有日期......如何用日期制作循环?
  • 嗯...日期有特定的间隔。秒、分钟、小时、天等。您希望循环的时间间隔是多少?然后只计算开始和结束之间的间隔数并循环。
  • 只有几天,所以循环需要一天一天过去......
  • 也许我可以使用:moment().dayOfYear();所以这将返回我的号码...

标签: javascript jquery json loops while-loop


【解决方案1】:

我的另一个答案有问题,这就是我在它之后提出的:

首先,创建一个 foreach 循环,循环遍历数组中的所有对象

for (var obj of objArray) {} //Use "of" instead of "in" tk get the values and not the indices

然后,在这个循环中,检查对象的每个字段,如果它们相同,则 abd 如果它们相同,则中断循环,否则,如果没有匹配的对象,则将其压入数组。

function isInArray(yourObj) {
    for (var obj of objArray) {
        if (obj.id == yourObj.id && obj.start == yourObj.start && obj.price == yourObj.price && obj.user_id == yourObj.user_id)
             return true;
     }
    return false;
}

【讨论】:

猜你喜欢
  • 2020-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-03-16
  • 2017-01-25
  • 2014-12-20
  • 1970-01-01
  • 2021-03-28
  • 1970-01-01
相关资源
最近更新 更多