1

image
我最近遇到一个点,需要获得两个数组之间的差异,让我们声明两个简单的数组:

数组

 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 检查对象内的值


羊先生
1.9k 声望821 粉丝