Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 对于每个数组值,检查它是否在json数组中。如果是,则跳过json数组以进行下一次迭代_Javascript_Jquery_Angularjs_Arrays_Json - Fatal编程技术网

Javascript 对于每个数组值,检查它是否在json数组中。如果是,则跳过json数组以进行下一次迭代

Javascript 对于每个数组值,检查它是否在json数组中。如果是,则跳过json数组以进行下一次迭代,javascript,jquery,angularjs,arrays,json,Javascript,Jquery,Angularjs,Arrays,Json,如果标题有点混乱,很抱歉。不知道该怎么说 我有一系列的日期: var dateRange = ["2017-08-21", "2017-08-22", "2017-08-23", "2017-08-24", "2017-08-25", "2017-08-26", "2017-08-27"]; 我还有一个包含日期的json数据数组 var jsonArray = [ { date: "2017-08-21", edit: false,

如果标题有点混乱,很抱歉。不知道该怎么说

我有一系列的日期:

var dateRange = ["2017-08-21", "2017-08-22", "2017-08-23", "2017-08-24", "2017-08-25", "2017-08-26", "2017-08-27"];
我还有一个包含日期的json数据数组

var jsonArray = [
    {
         date: "2017-08-21",
         edit: false,
         text: "some text"
    },
    {
         date: "2017-08-23", //notice skipped 2017-08-22
         edit: false,
         text: "some text"
    },
    ...
];
因此,我要做的是检查
jsonArray
中的每个日期,如果
dateRange
中的任何日期都不存在
jsonArray
,请采取措施

我当时的做法是对
日期范围中的每个日期执行
索引,但我意识到,例如
“2017-08-23”
“2017-08-21”
相比,将触发
,但我不希望触发,因为
“2017-08-23”
实际上存在于数组中

这有意义吗

谢谢你的帮助

天真的方法是O(n^2),即:

var jsonArray=[
{
日期:“2017-08-21”,
编辑:false,
文本:“一些文本”
},
{
日期:“2017-08-23”//通知跳过2017-08-22
编辑:false,
文本:“一些文本”
},
];
var日期范围=[“2017-08-21”、“2017-08-22”、“2017-08-23”、“2017-08-24”、“2017-08-25”、“2017-08-26”、“2017-08-27”];
对于(var i=0;i
天真的方法是O(n^2),即:

var jsonArray=[
{
日期:“2017-08-21”,
编辑:false,
文本:“一些文本”
},
{
日期:“2017-08-23”//通知跳过2017-08-22
编辑:false,
文本:“一些文本”
},
];
var日期范围=[“2017-08-21”、“2017-08-22”、“2017-08-23”、“2017-08-24”、“2017-08-25”、“2017-08-26”、“2017-08-27”];
对于(var i=0;i}
我不知道我是否得到了它,但您想检查
jsonArray
中的任何项目是否在
dateRange
中包含日期,对吗

您可以执行以下操作:

让yourKey=jsonArray.some((项)=>{
return dateRange.contains(item.date)
})

如果任何jsonArray项目日期与dateRange日期匹配,则会将
true
返回到
yourKey
。是这样吗

[编辑]

如果要检查每个json数组项并执行某些操作,请执行以下操作:

jsonArray.forEach((item) => {
    if (dateRange.contains(item.date)) {
        // The date is in the array, do something
    } else {
        // The date is not in the array, do something else.
    }
})

我不知道我是否得到了它,但您想检查
jsonArray
中的任何项目是否在
dateRange
中包含日期,对吗

您可以执行以下操作:

让yourKey=jsonArray.some((项)=>{
return dateRange.contains(item.date)
})

如果任何jsonArray项目日期与dateRange日期匹配,则会将
true
返回到
yourKey
。是这样吗

[编辑]

如果要检查每个json数组项并执行某些操作,请执行以下操作:

jsonArray.forEach((item) => {
    if (dateRange.contains(item.date)) {
        // The date is in the array, do something
    } else {
        // The date is not in the array, do something else.
    }
})
是这样的:

函数DateRangeTester(startDateString,endDateString){
var start=新日期(startDateString).getTime();
var end=新日期(endDateString).getTime();
this.test=函数(testDateString、passFunc、failFunc、passFuncContext、failFuncContext){
var pc=passFuncContext | | this;
var fc=failFuncContext | | this;
var test=新日期(testDateString).getTime();
如果(test>=start&&test是这样的:

函数DateRangeTester(startDateString,endDateString){
var start=新日期(startDateString).getTime();
var end=新日期(endDateString).getTime();
this.test=函数(testDateString、passFunc、failFunc、passFuncContext、failFuncContext){
var pc=passFuncContext | | this;
var fc=failFuncContext | | this;
var test=新日期(testDateString).getTime();

如果(test>=start&&test“我也有一个json数组”-不,你有一个对象数组;这个问题中没有json。无论如何,我不理解你关于
indexOf()
不起作用的说明,因为
.indexOf()
不会将“2017-08-23”与“2017-08-21”匹配-你能用你的问题来展示你尝试过的代码吗?@nnnnnn问题是如果
indexOf()
会失败,因为将
2017-08-23
2017-08-21
进行比较是错误的…我想检查数组元素是否在对象数组中的任何位置..这是否更有意义?不是真的。如果您在
jsonArray
中迭代项目,并想测试当前项目的日期是否为空在另一个数组中,你可以说
if(dateRange.indexOf(jsonArray[i].date)==-1)
“我也有一个json数组”-不,你有一个对象数组;这个问题中没有json。无论如何,我不理解你关于
indexOf()
为什么不起作用的说明,因为
.indexOf()
不会将“2017-08-23”与“2017-08-21”匹配-你能用你的问题来展示你尝试过的代码吗?@nnnnnn问题是如果
indexOf()
会失败,因为将
2017-08-23
2017-08-21
进行比较是错误的…我想检查数组元素是否在对象数组中的任何位置..这是否更有意义?不是真的。如果您在
jsonArray
中迭代项目,并想测试当前项目的日期是否为空在另一个数组中,可以说
if(dateRange.indexOf(jsonArray[i].date)=-1)