我对两个函数 indexOf 和在数组中查找索引之间的区别感到困惑。
文件说
findIndex - 返回数组中谓词为真的第一个元素的索引,否则返回 -1。
和
indexOf - 返回值在数组中第一次出现的索引。
原文由 Rahul Singh 发布,翻译遵循 CC BY-SA 4.0 许可协议
我对两个函数 indexOf 和在数组中查找索引之间的区别感到困惑。
文件说
findIndex - 返回数组中谓词为真的第一个元素的索引,否则返回 -1。
和
indexOf - 返回值在数组中第一次出现的索引。
原文由 Rahul Singh 发布,翻译遵循 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 许可协议
13 回答12.8k 阅读
7 回答1.9k 阅读
3 回答1.1k 阅读✓ 已解决
2 回答1.2k 阅读✓ 已解决
6 回答897 阅读✓ 已解决
6 回答1.1k 阅读
2 回答1.3k 阅读✓ 已解决
主要区别在于这些函数的参数:
Array.prototype.indexOf()
需要一个 值 作为第一个参数。这使得在 原始类型(如字符串、数字或布尔值)数组中查找索引成为一个不错的选择。Array.prototype.findIndex()
期望 回调 作为第一个参数。如果您需要具有非原始类型(例如对象)的数组中的索引,或者您的查找条件比值更复杂,请使用此选项。有关这两种情况的示例,请参见链接。