Underscore.js _.iterateUntil() 方法
_.iterateUntil ()方法有两个函数,一个用作结果生成器,另一个函数停止检查,种子值 n 并返回每个生成结果的数组。 _.iterateUntil() 方法的操作是这样的,结果生成器在开始时与种子值一起传递,每个后续结果将一直持续到结果未通过检查函数。
生成器函数以起始种子值作为输入,因此会生成数组,直到停止检查函数返回false 。
句法:
_.iterateUntil(genFunc, checkFunc, seed_val)
参数:此方法接受三个参数,如上所述,如下所述:
- genFunc:该函数用作结果生成器。
- checkFunc:用作停止检查的函数。
- seed_val:启动时传递给生成器的值。
返回值:该方法返回一个生成的数组。
注意:这在普通 JavaScript 中不起作用,因为它需要安装 underscore.js contrib库。
underscore.js contrib库可以使用npm install underscore-contrib –save 安装
示例 1:在此示例中,我们将使用此方法生成一个数组。
Javascript
// Defining underscore contrib variable
var _ = require('underscore-contrib');
// Defining Generating function
var genFunc =
function(n) {
return n + 1;
}
// Defining stop-check function
var checkFunc =
function(n) {
return n < 11;
}
// Generating an array
var arr = _.iterateUntil(genFunc, checkFunc, 1);
console.log("Generated Array : ");
console.log(arr);
Javascript
// Defining underscore contrib variable
var _ = require('underscore-contrib');
// Defining Generating function
var genFunc =
function(n) {
return n + 2;
}
// Defining stop-check function
var checkFunc =
function(n) {
return n < 21;
}
// Generating an array
var arr = _.iterateUntil(genFunc, checkFunc, 0);
console.log("Generated Array : ");
console.log(arr);
输出:
Generated Array :
[
2, 3, 4, 5, 6,
7, 8, 9, 10
]
示例 2:在此示例中,我们将使用此方法生成一个包含 2 的表的数组,方法是提供种子值 0 并从生成函数返回 n+2。
Javascript
// Defining underscore contrib variable
var _ = require('underscore-contrib');
// Defining Generating function
var genFunc =
function(n) {
return n + 2;
}
// Defining stop-check function
var checkFunc =
function(n) {
return n < 21;
}
// Generating an array
var arr = _.iterateUntil(genFunc, checkFunc, 0);
console.log("Generated Array : ");
console.log(arr);
输出:
Generated Array :
[
2, 4, 6, 8, 10,
12, 14, 16, 18, 20
]