找出哪个功能更快的正确方法是什么?

What is the right way to find out which function is faster?

我在一段代码中有两个函数,一个使用 map(),另一个使用 filter()

const eip = [...new Map(elasticIps.map(e  => [e.publicIp, e])).values()];

const eip = elasticIps.filter((v,i,a)=>a.findIndex(t=>(t.publicIp === v.publicIp))===i)

他们都为我做了完全相同的事情,但我不知道找出哪个更快的最佳方法

您可以使用 console.time("label")console.timeEnd("label")

例如:

console.time("mapWay")
const eip = [...new Map(elasticIps.map(e  => [e.publicIp, e])).values()];
console.timeEnd("mapWay")

console.time("filterWay")
const eip = elasticIps.filter((v,i,a)=>a.findIndex(t=>(t.publicIp === v.publicIp))===i)
console.timeEnd("filterWay")

对于您在 console.time()

中设置的标签,您将获得以毫秒为单位的结果

如果你想使用一些工具来检查基准,你可以使用:

https://jsben.ch/