Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.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 带有自定义对象的typescript数组函数等于_Javascript_Arrays_Typescript - Fatal编程技术网

Javascript 带有自定义对象的typescript数组函数等于

Javascript 带有自定义对象的typescript数组函数等于,javascript,arrays,typescript,Javascript,Arrays,Typescript,我想使用数组函数(比如contains、unique)来检查与我自己的equals函数的相等性 例如: let arr = [{id:1,..//some more},{id:2,..//some more},{id:3,..//some more}] 我希望通过使用仅检查id的equals函数,返回true: arr.contains({id:1,....}). 我试图通过搜索,但没有找到 我怎么做?通常,我如何在typescript中使用自己的equal函数(就像Java中的equals

我想使用数组函数(比如contains、unique)来检查与我自己的equals函数的相等性

例如:

let arr = [{id:1,..//some more},{id:2,..//some more},{id:3,..//some more}]
我希望通过使用仅检查id的equals函数,返回true:

arr.contains({id:1,....}).
我试图通过搜索,但没有找到

我怎么做?通常,我如何在typescript中使用自己的equal函数(就像Java中的equals函数一样)。

您可以使用并测试返回的值是否未定义

例如:

let arr = [{id: 1, test: '1'}, {id: 2, test: '2'}];
const customEqual = i => i.id === 1;
const containsItemWithId1 = arr.find(customEqual) !== undefined;
您可以使用并测试返回的值是否未定义

例如:

let arr = [{id: 1, test: '1'}, {id: 2, test: '2'}];
const customEqual = i => i.id === 1;
const containsItemWithId1 = arr.find(customEqual) !== undefined;

不能更改数组函数(如
includes
indexOf
)使用的相等性检查。但其他数组函数允许您使用回调:

  • find
    -查找回调函数返回真实值的数组中的第一个条目
  • findIndex
    -查找回调返回truthy值的数组中第一个条目的索引
  • some
    -在调用回调函数的数组中循环,直到它返回一个truthy值(在这种情况下,
    some
    停止并返回
    true
    );如果回调从未返回真实值,
    some
    将返回
    false
  • every
    -循环调用回调函数的数组,直到它返回falsy值(在这种情况下,
    every
    停止并返回
    false
    );如果回调从未返回错误值,
    every
    返回
    true
所有这些都在上进行了描述,并附有链接的详细描述

因此,例如,具有自定义等式的“contains”将是
some

const a=[
{id:1},
{id:2},
{id:3}
];
log(“Has 1?”+a.some(e=>e.id==1));

log(“has4?”+a.some(e=>e.id==4))
您不能更改数组函数(如
includes
indexOf
)使用的相等性检查。但其他数组函数允许您使用回调:

  • find
    -查找回调函数返回真实值的数组中的第一个条目
  • findIndex
    -查找回调返回truthy值的数组中第一个条目的索引
  • some
    -在调用回调函数的数组中循环,直到它返回一个truthy值(在这种情况下,
    some
    停止并返回
    true
    );如果回调从未返回真实值,
    some
    将返回
    false
  • every
    -循环调用回调函数的数组,直到它返回falsy值(在这种情况下,
    every
    停止并返回
    false
    );如果回调从未返回错误值,
    every
    返回
    true
所有这些都在上进行了描述,并附有链接的详细描述

因此,例如,具有自定义等式的“contains”将是
some

const a=[
{id:1},
{id:2},
{id:3}
];
log(“Has 1?”+a.some(e=>e.id==1));

log(“has4?”+a.some(e=>e.id==4))“我想使用数组函数(如contains,unique)”JavaScript的数组类型没有。它确实有
包括
(从ES2016开始)。“我试图通过搜索未找到…”真的吗?比如说,你找不到?其中列出了
find
forEach
。。。你不明白我的问题。函数名不重要,我知道数组的所有函数。我想将所有数组函数与我的自定义相等函数一起使用。我完全理解你的问题。你看了
查找了吗?“我想使用数组函数(比如contains,unique)”JavaScript的数组类型没有。它确实有
包括
(从ES2016开始)。“我试图通过搜索未找到…”真的吗?比如说,你找不到?其中列出了
find
forEach
。。。你不明白我的问题。函数名不重要,我知道数组的所有函数。我想将所有数组函数与我的自定义相等函数一起使用。我完全理解你的问题。您是否查看了
find
?(如果上面的示例使用
find
,请点击刷新。*哈欠*需要更多茶。)(如果上面的示例使用
find
,请点击刷新。*哈欠*需要更多茶。)