javascript - 如何在 JavaScript/Jquery 中切片已经存在于另一个数组中的数组元素

标签 javascript jquery arrays push slice

<分区>

我有 2 个时间字符串数组。我想删除 arr1 中已经存在于 arr2 中的元素。

这些是我的 arry:

 arr1 = ["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45", "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45", "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45", "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45", "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30"]

    arr2=["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "13:00", "22:00", "22:15"]

请帮忙。提前致谢

最佳答案

您可以使用由第二个数组构成的哈希表对其进行过滤。

var arr1 = ["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45", "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45", "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45", "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45", "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30"],
    arr2 = ["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "13:00", "22:00", "22:15"],
    hash = {};

arr2.forEach(function (a) {
    hash[a] = true;
});

arr1 = arr1.filter(function (a) {
    return !hash[a];
});

console.log(arr1);

关于排序数据的建议。

var arr1 = ["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "08:15", "08:30", "08:45", "09:00", "09:15", "09:30", "09:45", "10:00", "10:15", "10:30", "10:45", "11:00", "11:15", "11:30", "11:45", "12:00", "12:15", "12:30", "12:45", "13:00", "13:15", "13:30", "13:45", "14:00", "14:15", "14:30", "14:45", "15:00", "15:15", "15:30", "15:45", "16:00", "16:15", "16:30", "16:45", "17:00", "17:15", "17:30", "17:45", "18:00", "18:15", "18:30", "18:45", "19:00", "19:15", "19:30", "19:45", "20:00", "20:15", "20:30", "20:45", "21:00", "21:15", "21:30", "21:45", "22:00", "22:15", "22:30", "22:45", "23:00", "23:15", "23:30"],
    arr2 = ["05:30", "05:45", "06:00", "06:15", "06:30", "06:45", "07:00", "07:15", "07:30", "07:45", "08:00", "13:00", "22:00", "22:15"],
    j = 0;

arr1 = arr1.filter(function (a) {
    while (arr2[j] < a) {
        j++;
    }
    return arr2[j] !== a;
});

console.log(arr1);

关于javascript - 如何在 JavaScript/Jquery 中切片已经存在于另一个数组中的数组元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38012778/

相关文章:

javascript - (之后)jQuery获取脚本成功,我看不到(故意)错误

javascript - 使用扩展运算符将对象插入数组?

javascript - 为什么这个事件监听器不起作用?

jquery - 如何更改 Jquery Accordion 的内容背景颜色

c - C 中的指针问题,找不到我的错误

JavaScript 函数数组

javascript - Material UI Select Component - 一个组件正在将文本类型的受控输入更改为不受控制

javascript - 仅内联处理程序有效

javascript - 洗牌 HTML 链接数组的问题

javascript - W3schools 上 AJAX 示例的问题