Dom*_*nik 2 javascript arrays jquery backbone.js momentjs
所以在我的主干应用程序 copyCLDRView 中,我尝试复制/粘贴数周(以及底层组件/数据)。或者稍微抽象一点,“将一周和一周中的模型复制到另一周”。
现在我通常想检查目标周是否至少在一天(从星期一到星期日的目标周)至少有一个组件。为了检查目标周中是否有组件,我有以下日期字符串数组,其中包含所有具有组件的日期:
debug("[copyCLDRView::initialize] -> allDaysWithComponents: ", this.allDaysWithComponents);
Run Code Online (Sandbox Code Playgroud)
例如,它可以包含以下值(格式为 DDMMYYYY 的日期字符串):
[copyCLDRView::initialize] -> allDaysWithComponents: ["20042015", "21042015", "22042015", "23042015", "24042015", "27042015", "28042015",205"205"205"205"205"205"205" , "11052015", "12052015", "13052015", "14052015", "15052015", "18052015", "19052015", "20052015", "25,2050,120"25,505,20"25,5020"2 27052015”、“28052015”、“29052015”、“01062015”、“02062015”、“03062015”、“04062015”、“05062015”]
现在我必须检查这个数组中是否至少有一个逻辑日期与给定的 Moment.js 对象(进一步称为“时刻”)在同一周,我设法始终是星期一。
paste: function (evt) {
//this.selected is my momentobject, e.g. Mon May 18 2015 00:00:00 GMT+0200
if (this.selected && this.selected !== null) {
//Here I need the check,
//Pseudocode: if weekHasComponent(this.selected, alldaysWIthComponents) ...
this.pasteData(this.selected, this.tmpStorage);
}
},
Run Code Online (Sandbox Code Playgroud)
所以在这个例子中,我选择了所选的一周作为从 2015 年 5 月 18 日开始的那一周,现在我希望我的支票在一周中至少一天中有一个组件时返回“true”=> 往上看,如果数组至少包含以下值之一,它应该返回 true :18052015, 19052015, 20052015, 21052015,22052015
所以我在问自己 moment.js 是否可以帮助我在这里进行比较,但我还没有找到任何东西,希望你能帮忙。
最好的问候,多米尼克
小智 6
从各种日期字符串中创建矩对象,然后isSame在调用内部比较它们Array.prototype.some(或者,您可以使用 underscore.js 或 lodash)
var dates = ["20150101", "20150201"]
var testDate = moment("20150102", "YYYYMMDD")
dates.some(function(date){
return moment(date, "YYYYMMDD").isSame(testDate,"week")
})
//Should return true for this first value of testDate
testDate = moment("20150115", "YYYYMMDD");
dates.some(function(date){
return moment(date, "YYYYMMDD").isSame(testDate,"week")
})
//Should return false for this
Run Code Online (Sandbox Code Playgroud)