Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 运行数组中的array.some过滤器时会发生什么_Javascript - Fatal编程技术网

Javascript 运行数组中的array.some过滤器时会发生什么

Javascript 运行数组中的array.some过滤器时会发生什么,javascript,Javascript,我刚刚学习了一个新技巧,可以在2数组对象中找到相同的对象,它工作得非常好。它使用array.filter和array.some,正如下面的代码所示,但我不明白当一些函数返回true或false时,过滤器如何运行 const similarity = (arr, values) => arr.filter(item => values.some(m => (m.id === item.id) && (m.name === item.name))); 我的意见:

我刚刚学习了一个新技巧,可以在2数组对象中找到相同的对象,它工作得非常好。它使用array.filter和array.some,正如下面的代码所示,但我不明白当一些函数返回true或false时,过滤器如何运行

const similarity = (arr, values) => arr.filter(item => values.some(m => (m.id === item.id) && (m.name === item.name)));
我的意见:

let arr1 = [
    {
        id: 1,
        name: "kiet"
    },
    {
        id: 2,
        name: 'phan'
    },
    {
        id: 3,
        name: 'tuan'
    }]

let arr2 = [
    {
        id: 1,
        name: "kiet"
    },
    {
        id: 2,
        name: 'haha'
    },
    {
        id: 5,
        name: 'tuan'
    }
]
我的结果是:

[ { id: 1, name: 'kiet' } ]

如果要检查阵列相交,这是一种很好的方法

常量元音=[…'AEIOU']; 常量isvotel=x=>votels.somev=>v==x; 常量hasvuel=string=>[…string].filterisVowel.length>0;
您正在筛选数组,然后将此条件传递到

如果此处第二个数组的id为m,则第二个数组的对象等于此处第一个数组的id,项为数组的对象,名称等于第一个数组的name属性。如果是,则返回true。所以过滤器得到一个true,如果是,它将返回它得到true的特定对象

设arr1=[{id:1,name:kiet},{id:2,name'phan'},{id:3,name'tuan'}] 让arr2=[{id:1,name:kiet},{id:2,name'haha'},{id:5,name'tuan'}] const similarity=arr,values=>arr.filterietem=>values.somem=>m.id==item.id&&m.name==item.name;
logsimilarityarr1,arr2您从数组中获取与值数组具有相同属性id/名称的元素

需要一种布尔值,如果为true或,则将该项带到新数组

检查一个项,如果回调返回truthy值,则返回true,否则返回false

常数 相似性=数组,值=>array.filteritem=>values.somem=>m.id==item.id&&m.name==item.name, arr1=[{id:1,name:kiet},{id:2,name'phan'},{id:3,name'tuan'}], arr2=[{id:1,name:kiet},{id:2,name'haha'},{id:5,name'tuan'}], 结果=相似性ARR1,arr2;
console.logresult;你能告诉我示例输入的方式吗?你有一些数据来说明功能和结果吗?当一些返回true或false时,过滤器可以运行。这正是它的工作原理示例:arr是你的卡片集合,每个卡片都有id和名称,值是我的卡片集合,每个卡片都有id和名称。你的相似性函数将返回你的所有arr卡,我也有。tks@weegee,现在我知道它是如何工作的,tks你太多了。@TuấnKiệ可能与hlp有关
(m.id === item.id) && (m.name === item.name)