如何得到两个数组之间的差

简介: 如何得到两个数组之间的差

数组



const initialNumbers = [1, 2, 5, 7, 3]
const initialWithMoreNumbers = [1, 2, 4, 7, 9, 5, 3]


如何去找去他们之间的差异性,我在上一篇讲解了some,every的用法,这你讲解filter 过滤的用法


Array.filter ()



filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素

使用 Array.filter () ,我们可以循环遍历一个数组,并为数组中的每个项创建一些逻辑


let result = initialWithMoreNumbers.filter(number => number)


这句话执行完成后,返回一个的新的的数组,可以在返回的数据做一些事情


let result = initialWithMoreNumbers.filter(number => !initialNumbers.includes(number))


结果


[4, 9]


includes



includes() 方法用于判断字符串是否包含指定的子字符串。如果找到匹配的字符串则返回 true,否则返回 false。

对象数组



如果需要比较数组中对象中的键,只需添加一个名为 array.every ()的新方法,就可以再次循环并搜索所需的内容


const people = [{name: 'cesar', age: 23}]
const morePeople = [{name: 'cesar', age: 23}, {name: 'kevin', age: 26}, {name: 'pedro', age: 25}]
let result2 = morePeople.filter(item => {
        return people.every(todo => {
           return todo.name.includes(item.name);
        })
          })
console.log(result2) // [{age: 23, name: "cesar"}]


Every ()根据条件返回 true 或 false,如果每一项都符合条件,更多关于使用 some、 every和 Object.values 检查对象内的值

相关文章
|
11月前
|
存储 容器
List,linkeedlist集合介绍,特点,二者区别,增长因子,去重复
List,linkeedlist集合介绍,特点,二者区别,增长因子,去重复
|
5月前
|
算法 测试技术 C#
二分查找:LeetCode2035:将数组分成两个数组并最小化数组和的差
二分查找:LeetCode2035:将数组分成两个数组并最小化数组和的差
|
4月前
1083 是否存在相等的差 (20 分)
1083 是否存在相等的差 (20 分)
|
5月前
|
设计模式 算法 Java
【数据结构和算法】无限集中的最小数字
这是力扣的2336题,难度为中等,解题方案有很多种,本文讲解我认为最奇妙的一种。使用TreeSet和min变量来维护一个无限集合,保证集合的连续性。添加元素时,若元素大于等于min,则不添加;若元素小于min,则将其添加到TreeSet中。删除元素时,先判断TreeSet是否为空,若不为空,则从TreeSet中删除元素;若为空,则将min值加1。该算法能够高效地添加和删除元素,并保持集合的连续性。该算法还可以用优先队列(小根堆)+ hash表解题,比较优秀。
46 1
|
12月前
|
算法 测试技术 C++
C++算法:让数组不相等的最小总代价
C++算法:让数组不相等的最小总代价
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
392 0
【集合论】序关系 ( 偏序集元素之间的关系 | 可比 | 严格小于 | 覆盖 | 哈斯图 )
|
存储 算法 前端开发
前端算法-除自身外数组的乘积
前端算法-除自身外数组的乘积
|
存储
集合的操作(交并差)
集合的操作(交并差)
72 0
给定一个数值,计算最合适的行列数量的代码
给定一个数值,计算最合适的行列数量的代码
92 0
|
Rust 自然语言处理 算法
【算法】1913. 两个数对之间的最大乘积差(多语言实现)
两个数对 (a, b) 和 (c, d) 之间的 乘积差 定义为 (a * b) - (c * d) 。 例如,(5, 6) 和 (2, 7) 之间的乘积差是 (5 * 6) - (2 * 7) = 16 。 给你一个整数数组 nums ,选出四个 不同的 下标 w、x、y 和 z ,使数对 (nums[w], nums[x]) 和 (nums[y], nums[z]) 之间的 乘积差 取到 最大值 。 返回以这种方式取得的乘积差中的 最大值 。