Underscore.js _.whereWhere函数
Underscore.js是一个JavaScript库,它提供了很多有用的功能,对编程有很大的帮助,如地图、过滤器、调用等,甚至不使用任何内置对象。
_.findWhere()函数用于拥有一个与给定属性匹配的所有元素的列表。_.findWhere()函数用于在整个部分的列表中搜索一个内容。包含该内容的部分将被显示。
语法:
_.findWhere(list, properties)
参数:它需要两个参数。
- 列表。该参数包含项目列表。
- 属性。该参数包含测试条件。
返回值:从列表中选择的元素的详细信息被返回。只有第一个匹配的元素将被作为输出。
_.findWhere()和_.where()函数之间的区别:这两个函数都需要一个数组名称和要匹配的属性,但_.where()函数显示所有的匹配,而_.findWhere)函数只匹配第一个匹配。
在数组中搜索一个属性: _.findWhere()函数将数组中的元素一个一个地找出来,并匹配给定的属性是否相同。如果属性匹配,则显示该特定元素的其余细节。在属性第一次被匹配后,_.findWhere()函数结束。它只显示第一次匹配。
示例:
<html>
<head>
<title>_.findWhere() function</title>
<script type="text/javascript" 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: "harry"}, {id: 2, name: "jerry"}];
_.findWhere(users, {id:2}).name = 'tom';
console.log(users);
</script>
</body>
</html>
输出:
向_.findWhere()函数传递一个具有许多不同属性的元素列表:首先,声明具有所有元素及其特定属性的数组。然后将数组名称和需要匹配的属性一起传递给_.findWhere()函数。所有其余的属性将被显示为该特定元素的输出。
示例:
<html>
<head>
<title>_.findWhere() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
</head>
<body>
<script type="text/javascript">
var goal = [
{
"category" : "other",
"title" : "harry University",
"value" : 50000,
"id":"1"
},
{
"category" : "traveling",
"title" : "tommy University",
"value" : 50000,
"id":"2"
},
{
"category" : "education",
"title" : "jerry University",
"value" : 50000,
"id":"3"
},
{
"category" : "business",
"title" : "Charlie University",
"value" : 50000,
"id":"4"
}
]
console.log(_.findWhere(goal, {category: "education"}));
</script>
</body>
</html>
输出:
向_.findWhere()函数传递一个以 “真/假 “为属性的数组:首先声明数组(这里的数组是 “人”)。它的属性(这里是’hasLong’)被定义为’真’或’假’。选择一个条件来检查,如这里的’hasLongHairs’。Console.log显示最后的答案。
示例:
<html>
<head>
<title>_.findWhere() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
</head>
<body>
<script type="text/javascript">
var people = [
{"name": "sakshi", "hasLong": "false"},
{"name": "aishwarya", "hasLong": "true"},
{"name": "akansha", "hasLong": "true"},
{"name": "preeti", "hasLong": "true"}
]
console.log(_.findWhere(people, {hasLong: "true"}));
</script>
</body>
</html>
输出:
将一个数字数组作为属性一起传递给_.findWhere()函数:它也遵循同样的程序,首先声明数组的所有属性,然后将数组名称和匹配的属性给_.findWhere()函数。
示例:
<html>
<head>
<title>_.findWhere() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
</head>
<body>
<script type="text/javascript">
var users = [{"num":"1"},
{"num":"2"},
{"num":"3"},
{"num":"4"},
{"num":"5"}];
console.log(_.findWhere(users, {num:"2"}));
</script>
</body>
</html>
输出: