📜  Underscore.js _.iterateUntil() 方法

📅  最后修改于: 2022-05-13 01:56:31.761000             🧑  作者: Mango

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
]