Underscore.js _.some 函数
Underscore.js是一个JavaScript库,它提供了很多有用的功能,对编程有很大的帮助,如地图、过滤器、调用等,甚至不使用任何内置对象。
_.some()函数用于查找给定列表中的任何值是否符合给定条件。如果至少有一个值满足这个条件,那么输出将是 true 。当没有一个值符合时,输出将是false。
语法:
_.some(list, [predicate], [context])
参数:该函数接受上面提到的和下面描述的三个参数。
- list。这个参数包含了数据的列表。
- predicate。该参数用于保持测试条件。
- context。这个参数包含需要显示的文本。
返回值:返回值是true(当列表中至少有一个元素满足给定条件时)或false(当没有一个元素满足条件时)。
将一个数组传递给_.some()函数(): _.some()函数从列表中逐个获取元素,然后通过对代码的指定操作来检查条件。该操作是为了查找数组中是否包含任何真实的元素。
示例:
<html>
<head>
<title>_.some() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js">
</script>
</head>
<body>
<script type="text/javascript">
console.log(_.some([null, 0, 1, false]));
</script>
</body>
</html>
输出:
在下面的代码中,由于数组包含所有的假元素,如’0’、’false’、’null’,没有真元素,所以输出将是’false’。
示例:
<html>
<head>
<title>_.some() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js">
</script>
</head>
<body>
<script type="text/javascript">
console.log(_.some([null, 0, false]));
</script>
</body>
</html>
输出:
向_.some()函数传递一个数字列表和一个函数:首先,定义列表和需要在列表上执行/检查的函数。然后将列表和函数作为参数传递给_.some()函数。如果函数中给出的条件被满足,甚至被列表中的一个元素满足,那么输出将是true。
示例:
<!-- Write HTML code here -->
<html>
<head>
<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 values = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var isEven = function (value) {
return value % 2 === 0;
};
console.log(_.some(values, isEven));
</script>
</body>
</html>
输出:
向_.some()函数传递一个结构:首先声明数组(这里的数组是’人’)。选择一个需要检查的条件,如这里的’longHairs’。Console.log显示最终答案。由于三个人的’longHair’属性是真的,所以结果也是true。
示例:
<html>
<head>
<title>_.some() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js">
</script>
</head>
<body>
<script type="text/javascript">
var people = [
{name: 'sakshi', LongHair: ''},
{name: 'aishwarya', LongHair: true},
{name: 'akansha', LongHair: true},
{name: 'preeti', LongHair: true}
],
hasLongHairs = function (value) {
return (value.LongHair !== '');
};
console.log(_.some(people, hasLongHairs));
</script>
</body>
</html>
输出:
一起使用两个_.some()函数:向每个_.some()函数传递不同的对象,然后通过使用逻辑运算符如'&&'、'||'、'!'
等,一起使用以下结果。object1和arralist1至少包含一个真值,所以两个真值的结果也将是真值。因此,第一个条件得到了满足。object2是空的,arraylist2也是空的,所以它们是无效的。由于在每个_.some()函数前都使用了’!’,所以结果是两个真值。
示例:
<html>
<head>
<title>_.some() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js">
</script>
</head>
<body>
<script type="text/javascript">
var listOne = [null,, undefined, {}, 0];
var listTwo = [];
var objectOne = {
property1: null,
property3: true
};
var objectTwo = {};
if (_.some(listOne) && _.some(objectOne))
{
console.log("atleast one is valid\n")
};
if (!_.some(listTwo) && !_.some(objectTwo))
{
console.log("not valid\n")
};
</script>
</body>
</html>
输出:
示例:
<html>
<head>
<title>_.some() function</title>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" >
</script>
<script type="text/javascript" src=
"https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js">
</script>
</head>
<body>
<script type="text/javascript">
var values = [1, 3, 5, 7, 9];
var isEven = function (value) {
return value % 2 === 0;
};
console.log(_.some(values, isEven));
</script>
</body>
</html>
输出: