如何在 JavaScript 中查找满足特定条件的所有元素?
我们可以借助_.whare()函数找到特定条件。
_.where()属于underscore.js,这是一个提供通用函数的 JavaScript 库。_.where()是一个用于根据给定条件查找特定元素的函数。
假设您想查找某个班级的所有用户信息,然后将_.where()函数应用于所有部分的列表,并将条件作为部分名称传递。因此,将返回具有特定条件的所有用户的名称。
语法
_.where( list, [predicate], [context] )
该函数接受三个参数。
列表 - 用于保存数据列表的参数。
谓词 - 此参数保存测试条件。
上下文 - 我们需要显示的文本。
返回值 - 该函数返回所有满足条件的值。
示例 1:将数组传递给 _.where() 函数
_.where()函数逐个获取数组的元素,并与指定的条件进行匹配。Long 为真还是假。如果匹配,则返回该值。
<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> </head> <body> <script type="text/javascript"> var users = [ { name: "priya", Long: "false" }, { name: "aishwarya", Long: "true" }, { name: "akanksha", Long: "true" }, { name: "ruby", Long: "true" }, ]; document.write(JSON.stringify(_.where(users, { Long: "true" }))); </script> </body> </html>
示例 2
在下面的示例中,我们将一个包含多个属性的元素列表传递给 _.where()函数 -
<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> </head> <body> <script type="text/javascript"> var details = [ { "city": "Ranchi", "state": "Jharkhand", "id": "1" }, { "city": "Jamshedpur", "state": "Jharkhand", "id": "2" }, { "city": "Hyderabad", "state": "Telangana", "id": "3" }, { "city": "Delhi", "state": "Delhi", "id": "4" }, { "city": "Delhi", "Pune": "Maharastra", "id": "5" } ]; document.write(JSON.stringify(_.where(details,{state:"Jharkhand"}))); </script> </body> </html>
示例:3
在这个示例中,我们将一个包含数字作为其属性之一的数组传递给_.where()函数 -
<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> </head> <body> <script type="text/javascript"> var users = [ { id: 1, name: "priya" }, { id: 2, name: "aishwarya" }, { id: 3, name: "akanksha" }, { id: 4, name: "ruby" }, { id: 5, name: "Aman" }, ]; document.write(JSON.stringify(_.where(users, { id: 5 }))); </script> </body> </html>
示例 4:_.where() 函数作为 _.findWhere() 函数
我们可以使用_.findWhere()函数代替_.where()函数,因为两者都给出相同的输出。
<!DOCTYPE html> <html> <head> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> </head> <body> <script type="text/javascript"> var users = [ { id: 1, name: "priya" }, { id: 2, name: "aishwarya" }, { id: 3, name: "akanksha" }, { id: 4, name: "ruby" }, { id: 5, name: "Aman" }, ]; document.write(JSON.stringify(_.findWhere(users, { id: 5 }))); </script> </body> </html>
示例 5:使用 _.filter() 方法
在这种情况下,我们将使用_.filter()方法来检查数组中的元素是否通过了条件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>_.filter() method example</title> <script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script> <div id="filter"></div> </head> <body> <script> let arr = [2, 4, 6, 8, 10]; let flag = false; let getEvenNum = _.filter(arr, function (num) { return num % 2 == 0; }); if (JSON.stringify(getEvenNum) === JSON.stringify(arr)) { flag = true; } document.getElementById("filter").innerHTML ="The array elements passed the condition : " + flag; </script> </body> </html>
示例 6:使用 every() 方法
在这种情况下,我们将使用array.every()方法来检查数组中的元素是否通过了条件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Array.every() method example</title> <div id="every"></div> </head> <body> <script> let arr = new Array(2, 4, 6, 8, 10); let getEvenNum = arr.every(function (num) { return num % 2 == 0; }); document.getElementById("every").innerHTML ="The array elements have passed the condition : " + getEvenNum; </script> </body> </html>
示例 7:使用 for 循环
现在让我们看看一个使用 for 循环的示例 -
<!DOCTYPE html> <html lang="en"> <head> <title>Using for loop example</title> <div id="every"></div> </head> <body> <script> let arr = new Array(2, 4, 6, 8, 10); let flag = true; for (let i = 0; i < arr.length; i++) { if (arr[i] > 10) { flag = false; break; } } document.getElementById("every").innerHTML = "The array elements have passed the condition : " + flag; </script> </body> </html>
广告