Javascript 检查两个数组中单个元素之间的值

Javascript 检查两个数组中单个元素之间的值,javascript,arrays,foreach,splice,Javascript,Arrays,Foreach,Splice,我试图根据从API获取的数据从数组中删除特定元素。API返回如下对象数组{“videoDate”:“07/31/2020”,“videoTime”:“1:00AM”}。我有一个现有阵列,其中的项目看起来像“07/31/2020 1:00 AM”。我的目的是检查现有数组是否包含一个字符串与对象中的videoDate和videoTime字符串匹配的项,并将其删除 let responseArray = JSON.parse(response); dayArray.fo

我试图根据从API获取的数据从数组中删除特定元素。API返回如下对象数组{“videoDate”:“07/31/2020”,“videoTime”:“1:00AM”}。我有一个现有阵列,其中的项目看起来像“07/31/2020 1:00 AM”。我的目的是检查现有数组是否包含一个字符串与对象中的videoDate和videoTime字符串匹配的项,并将其删除

        let responseArray = JSON.parse(response);
        dayArray.forEach((day) => {
          responseArray.forEach((res) => {
            if (day === res.videoTime) { 
              console.log('match');
              let index = dayArray.indexOf(day);
              dayArray.splice(index, 1);
            }
          })
        })
上面的代码正在从
dayArray
中删除每个元素。对于上下文,
响应
包含约50个相同的对象
[{“videoTime”:“07/31/2020 1:00 AM”}
用于测试。day数组包含30个字符串,所有字符串的格式相同,但值不同。此数组中有一个字符串的精确值为
“07/31/2020 1:00 AM”
。我的目的是让函数删除此条目,并保留所有剩余条目以验证它是否正常工作。现在它正在从
dayArray
中删除每个元素

编辑:

这是dayArray在函数运行之前的初始外观:

["07/31/2020 1:00 AM", "08/06/2020 9:00AM", "08/06/2020 10:00AM", "08/06/2020 11:00AM", "08/06/2020 1:00PM", "08/10/2020 9:00AM", "08/10/2020 10:00AM", "08/10/2020 11:00AM", "08/10/2020 1:00PM", "08/11/2020 9:00AM", "08/11/2020 10:00AM", "08/11/2020 11:00AM", "08/11/2020 1:00PM", "08/12/2020 9:00AM", "08/12/2020 10:00AM", "08/12/2020 11:00AM", "08/12/2020 1:00PM", "08/13/2020 9:00AM", "08/13/2020 10:00AM", "08/13/2020 11:00AM", "08/13/2020 1:00PM", "08/17/2020 9:00AM", "08/17/2020 10:00AM", "08/17/2020 11:00AM", "08/17/2020 1:00PM", "08/18/2020 9:00AM", "08/18/2020 10:00AM", "08/18/2020 11:00AM", "08/18/2020 1:00PM"]
API响应如下所示

[{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"},{"videoTime":"07/31/2020 1:00 AM"}]

拼接正在迭代的数组将不起作用,因为所有数组索引都向下移动,迭代将跳过移动到它刚刚检查的位置的元素

改用
filter()

让dayArray=[“07/31/2020 1:00 AM”,“08/06/2020 9:00 AM”,“08/06/2020 10:00 AM”,“08/06/2020 11:00 AM”,“08/06/2020 1:00 pm”,“08/10/2020 9:00 AM”,“08/10/2020 11:00 AM”,“08/10/2020 1:00 pm”,“08/10/2020 9:00 AM”,“08/11/2020 10:00 AM”,“08/11/11/2020 11:00 AM”,“08/11/2020 1:00 pm”,“08/12/2020 9:00 AM”,“08/12:00 AM”,“08/10:00:00 AM”,“2020年12月8日上午11:00”、“2020年12月8日下午1:00”、“2020年13月8日上午9:00”、“2020年13月8日上午10:00”、“2020年13月8日上午11:00”、“2020年12月8日上午9:00”、“2020年17月8日上午10:00”、“2020年17月8日上午11:00”、“2020年17月8日下午1:00”、“2020年18月18日上午9:00”、“2020年18月18日上午11:00”、“2020年18:00”;
让我们回答如下:{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”}、{“视频时间”:“07/31/2020 1:00 AM”{“视频时间”:2020年7月31日凌晨1:00,{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”},“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:2020年7月31日凌晨1:00,{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”},“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”{“视频时间”:“2020年7月31日凌晨1:00”};
dayArray=dayArray.filter(日期\时间=>!响应array.find({videoTime}=>videoTime==date\时间));

console.log(dayArray);
Hi感谢您的响应。在定义变量的行上,它由于错误而崩溃
TypeError:object null不可编辑(无法读取属性符号(Symbol.iterator))
这意味着正则表达式与数据不匹配。
dayArray
中是否有与模式不匹配的值?我已使regexp更灵活,并添加了错误检查。是的,实际上dayArray的格式与我给出的示例略有不同。我更改了它,使它们都具有相同的格式,但数据无效e仍然保留在ArraI中,我编辑了这篇文章以更好地展示正在发生的事情