如何在与 jQuery 中的条件匹配的数组中获取对象的索引?
jQuery 是一个免费的开源 JavaScript 库,旨在为 HTML 网页添加交互性。 jQuery 在功能方面类似于 JavaScript,但使其流行的是它的简单性和易用性。 jQuery 捆绑了内置方法,可帮助实现所需的输出。在本文中,我们将讨论 jQuery 中的两种方法,它们可用于获取数组中与给定条件匹配的对象的索引。这两种方法讨论如下。
- findIndex():此方法为数组中存在的每个元素执行作为参数传递的函数。
- 句法:
array.findIndex(function(curr, index, arr), thisVal)
- 范围:
- curr:将在其上执行函数的数组的当前元素。这是
强制参数。 - index:当前元素的索引。这是可选参数。
- arr:当前元素所属的数组。这是可选参数。
- thisVal:这个值作为它的“this”值传递给函数。如果这个参数是
未指定,值“undefined”作为“this”值传递。该参数是可选的。
- curr:将在其上执行函数的数组的当前元素。这是
- 返回值:此方法返回返回的第一个元素的索引
函数的值为真。如果未找到匹配项,则返回 -1。如果有多个元素
满足条件,则返回第一个匹配元素的索引。
- 句法:
- some(): arr.some() 方法检查数组中是否至少有一个元素满足参数方法检查的条件。
- 句法:
array.some(function(curr, index, arr), thisval)
- 范围:
- curr:将在其上执行函数的数组的当前元素。这是
强制参数。 - index:当前元素的索引。这是可选参数。
- arr:当前元素所属的数组。这是可选参数。
- thisVal:这个值作为它的“this”值传递给函数。如果这个参数是
未指定,值“undefined”作为“this”值传递。该参数是可选的。
- curr:将在其上执行函数的数组的当前元素。这是
- 返回值:此方法返回返回的第一个元素的索引
函数的值为“true”。如果未找到匹配项,则返回 -1。如果有多个元素
满足条件,则返回第一个匹配元素的索引。
- 句法:
方法 1:在第一种方法中,我们展示了使用 jQuery 的findIndex()方法在匹配给定条件的数组中查找对象索引的过程。 findIndex()方法将函数作为第一个参数。该函数对数组的每个元素执行,函数返回“true”的元素是与指定条件匹配的元素。因此,该匹配元素的索引存储在索引变量中。索引变量的值返回到控制台。同样,对于 index1 变量,存在多个年龄 =“20”的对象。在这种情况下,将返回第一个匹配对象的索引。如果不存在匹配项,则输出为 -1。
// Write JavaScript code here
var arr = [
{ name: "ram", age: "20" },
{ name: "sam", age: "20" },
{ name: "tom", age: "19" },
{ name: "harry", age: "19" }
];
var index;
arr.findIndex(function (entry, i) {
if (entry.name == "tom") {
index = i;
return true;
}
});
// Arrow function expression ( =>) is
// an alternative to a traditional
// function expression
// It has limited use and returns the
// index of the first element for
/// which the function returns "true"
index1 = arr.findIndex(x => x.age === "20");
console.log(index);
console.log(index1);
输出:
2
0
方法 2:在第二种方法中,我们展示了使用 jQuery 的some()方法在匹配给定条件的数组中查找对象索引的过程。 some()方法将函数作为第一个参数。该函数对数组的每个元素执行,函数返回“true”的元素是与指定条件匹配的元素。因此,该匹配元素的索引存储在索引变量中。索引变量的值返回到控制台。
// Write Javascript code here
var arr = [
{ name: "ram", age: "20" },
{ name: "sam", age: "21" },
{ name: "tom", age: "19" },
{ name: "harry", age: "19" }
];
var index;
arr.some(function (entry, i) {
if (entry.name == "tom") {
index = i;
return true;
}
});
console.log(index);
输出:
2