我最近遇到一个点,须要得到两个数组之间的差别,让咱们声明两个简单的数组:html
const initialNumbers = [1, 2, 5, 7, 3]
复制代码
const initialWithMoreNumbers = [1, 2, 4, 7, 9, 5, 3]
复制代码
如何去找去他们之间的差别性,我在上一篇讲解了some,every的用法,这你讲解filter 过滤的用法数组
❝filter() 方法建立一个新的数组,新数组中的元素是经过检查指定数组中符合条件的全部元素markdown
❞
使用 Array.filter () ,咱们能够循环遍历一个数组,并为数组中的每一个项建立一些逻辑oop
let result = initialWithMoreNumbers.filter(number => number)
复制代码
这句话执行完成后,返回一个的新的的数组,能够在返回的数据作一些事情ui
let result = initialWithMoreNumbers.filter(number => !initialNumbers.includes(number))
复制代码
结果spa
[4, 9]code
❝includes() 方法用于判断字符串是否包含指定的子字符串。若是找到匹配的字符串则返回 true,不然返回 false。orm
❞
若是须要比较数组中对象中的键,只需添加一个名为 array.every ()的新方法,就能够再次循环并搜索所需的内容htm
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 检查对象内的值对象