gpt4 book ai didi

javascript - 我如何将 Array.find 与 foreach 等迭代器进行比较?

转载 作者:行者123 更新时间:2023-11-30 07:33:43 25 4
gpt4 key购买 nike

我经常使用 for 循环、forEach 循环、Array.map 等来迭代数组。我开始知道我们还可以使用 Array.find 来循环数组,它还可以根据条件返回数组中匹配的值:

我使用 Array.find()for 循环迭代对象数组,如下所示

使用 Array.find:

[{
name: "John"
}, {
name: "Cannady"
}, {
name: "Sherlock"
}].find(function(oArrayObject) {
console.log(oArrayObject)
});

控制台输出:

{name: "John"}
{name: "Cannady"}
{name: "Sherlock"}

使用for循环:

    var aNames=[{
name: "John"
}, {
name: "Cannady"
}, {
name: "Sherlock"
}]

for(var i=-0;i<aNames.length;i++){
console.log(aNames[i]);
}

控制台输出:

{name: "John"}
{name: "Cannady"}
{name: "Sherlock"}

两个代码做同样的事情。

Array.find() 相对于 for 循环的优势是什么?

哪个性能更好??

请解释 array.find 和其他迭代器在性能、用法、内部功能等方面的区别...

最佳答案

Array#find好吧,用于在数组中找到与谓词匹配的项目,并将其返回。当 Array.find 返回时,循环结束。在性能方面,如果您要查找的项目不是最后一项,则不必遍历整个数组。

var result = [{
name: "John"
}, {
name: "Cannady"
}, {
name: "Sherlock"
}].find(function(o) {
return o.name.startsWith('Ca');
});

console.log(result);

有很多方法可以迭代数组(see array in mdn),例如:forEach, map, filter, reduce, reduceRight, 一些everyfindfindIntex

除了Array#forEach,它们中的大多数都提供迭代本身之外的附加功能。

关于javascript - 我如何将 Array.find 与 foreach 等迭代器进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41471824/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com