数组的indexOf和findIndex函数的区别

新手上路,请多包涵

我对两个函数 indexOf 和在数组中查找索引之间的区别感到困惑。

文件说

findIndex - 返回数组中谓词为真的第一个元素的索引,否则返回 -1。

indexOf - 返回值在数组中第一次出现的索引。

原文由 Rahul Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 350
2 个回答

主要区别在于这些函数的参数:

  • Array.prototype.indexOf() 需要一个 作为第一个参数。这使得在 原始类型(如字符串、数字或布尔值)数组中查找索引成为一个不错的选择。

  • Array.prototype.findIndex() 期望 回调 作为第一个参数。如果您需要具有非原始类型(例如对象)的数组中的索引,或者您的查找条件比值更复杂,请使用此选项。

有关这两种情况的示例,请参见链接。

原文由 str 发布,翻译遵循 CC BY-SA 4.0 许可协议

简单 - 您使用的是哪种数组结构?

  • 如果对象数组, findIndex()
  • 否则, indexOf()

“我想在 对象数组中 找到索引,键为“Orange”。

 let fruits = [
   { type: "Apple", quantity: 9 },
   { type: "Banana", quantity: 2},
   { type: "Orange", quantity: 8},
   { type: "Pear", quantity: 777}
];

let myIndex = fruits.findIndex(fruit => fruit.type === "Orange"); // Returns 2.

“我想在一个 简单的数组 中找到索引”。

 let fruits = [ "Apple", "Banana", "Pear", "Orange"];

let index = fruits.indexOf("Orange"); // Returns 3.

原文由 daCoda 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏