indexOf()
indexOf() 方法返回给定元素可以在数组中找到的第一个索引,如果不存在,它将返回 -1:
let arr1 = [1, 2, 3, 4, 5]; let arr2 = [5, 6, 7, 8]; let difference = arr1.filter(x => arr2.indexOf(x) === -1); console.log(difference);
有多种 JavaScript 和 jQuery 方法可以了解两个数组之间的差异。
我们可以使用 JavaScript Array 的 filter 方法使用一行代码,它将输出 arr1 中那些在 arr2 中找不到的元素。
它可以通过三种方式完成。
set对象
set object 方法可以检索两个指定数组之间的差异。
let arr1 = [1, 2, 3, 4, 5]; let arr2 = [5, 6, 7, 8]; let b = new Set(arr2); let difference = [...arr1].filter(x => !b.has(x)); console.log(difference);
contains()
contains() 方法确定数组是否包含指定的元素:
let arr1 = [1, 2, 3, 4, 5]; let arr2 = [5, 6, 7, 8]; let difference = arr1.filter(x => !arr2.includes(x)); console.log(difference);
jQuery 方法
我们还可以使用 jQuery 通过 grep() 方法查找数组之间的差异:
const { JSDOM } = require("jsdom"); const { window } = new JSDOM(); let $= require("jquery")(window); let arr1 = [1, 2, 3, 4, 5]; let arr2 = [5, 6, 7, 8]; let difference = $.grep(arr1, (item) => $.inArray(item, arr2) === -1); console.log(difference);
jQuery 的另一种方法——not() 也可以处理比较:
const { JSDOM } = require("jsdom"); const { window } = new JSDOM(); let $= require("jquery")(window); let arr1 = [1, 2, 3, 4, 5]; let arr2 = [5, 6, 7, 8]; let difference = $(arr1).not(arr2).get(); console.log(difference);
过滤filter方法
filter() 方法使用通过提供的函数实现的测试的所有元素初始化一个新数组。
此方法为数组中的每个元素调用一次提供的回调函数,并构造一个新数组,其中包含回调返回值为 true 的所有值。
未通过回调测试的数组元素将被遗漏,不会包含在新数组中。
日期:2020-06-02 22:16:20 来源:oir作者:oir