如何在jQuery中获取数组中符合条件的对象的索引
jQuery是一个免费和开源的JavaScript库,旨在增加HTML网页的互动性。jQuery在功能上与JavaScript相似,但使其流行的原因是它的简单性和易用性。jQuery捆绑了内置的方法,帮助实现所需的输出。在这篇文章中,我们将讨论jQuery中的两个方法,它们可以用来获取一个数组中符合给定条件的对象的索引。这两种方法讨论如下。
- findIndex()。该方法为数组中的每个元素执行作为参数传递的函数。
* 语法:
array.findIndex(function(curr, index, arr), thisVal)
- 参数:
- curr:数组的当前元素,该函数将在此基础上执行。这就是
强制性参数。 - index。当前元素的索引。这是一个可选参数。
- arr:当前元素所属的数组。这是一个可选参数。
- thisVal:该值作为其 “this “值传递给函数。如果这个参数是
不指定,值 “undefined “将作为 “this “值传递。这个参数是可选的。 - 返回值。该方法返回第一个元素的索引,该元素的返回值为
函数的值为真。如果没有找到匹配,则返回-1。如果有一个以上的元素是
符合标准,那么将返回第一个匹配元素的索引。
- some()。arr.some()方法检查数组中至少有一个元素是否满足参数方法所检查的条件。
* 语法:
array.some(function(curr, index, arr), thisval)
- 参数:
- curr:数组的当前元素,该函数将在此基础上执行。这就是
强制性参数。 - index。当前元素的索引。这是一个可选参数。
- arr:当前元素所属的数组。这是一个可选参数。
- thisVal:该值作为其 “this “值传递给函数。如果这个参数是
不指定,值 “undefined “将作为 “this “值传递。这个参数是可选的。 - 返回值。该方法返回第一个元素的索引,该元素的返回值为
该函数的值为 “true”。如果没有找到匹配,则返回-1。如果有一个以上的元素是
符合标准,那么将返回第一个匹配元素的索引。
方法1:在第一种方法中,我们展示了使用jQuery的findIndex()方法在一个数组中找到符合给定条件的对象的索引的过程。findIndex()方法需要一个函数作为第一个参数。这个函数在数组的每个元素上执行,函数返回 “true “的元素就是符合指定条件的元素。因此,这个匹配元素的索引被存储在索引变量中。index变量的值被返回到控制台。类似地,对于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