我最近遇到一个点,需要获得两个数组之间的差异,让我们声明两个简单的数组:
数组
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 检查对象内的值
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。