是否有一个 JavaScript 或 Lodash 函数可以轻松迭代成对或三元组
are there a javascript or lodash function that makes it easy to iterate through pairs or triples
所以我想在这里填写every(#):
var arr = [1,2,3,4,5,6,7,8]
arr.every(2)(function(a,b) {
return a + b;
})
// [3, 5, 7, 9, 11, 13, 15]
arr.every(3)(function(a,b,c) {
return a + b + c;
})
// [6, 9, 12, 15, 18, 21]
使用 reduce 函数:
arr.reduce(function(p,v,i,a) { if( i + 1 < a.length ) p.push( a[i] + a[i + 1] ); return p; },[]);
arr.reduce(function(p,v,i,a) { if( i + 2 < a.length ) p.push( a[i] + a[i + 1] + a[i + 2]); return p; },[]);
我不会轻易覆盖阵列原型。 如果你想要一个执行以下每一项任务的函数:
every = function(a,n,c) { return a.reduce(function(p,v,i,a) { if( i + n - 1 < a.length ) p.push( c.apply( this, a.slice( i, i + n ) ) ); return p; }, [] ); };
every(arr,2,function(a,b){return a+b;});
every(arr,3,function(a,b,c){return a+b+c;});
好吧,从技术上讲,您可以在所需的间隔内分配跳转变量:for (var i = 0; i < arr.length; i += 2)
.你可以把这个2
碰到任何你想要的东西。
java脚本中没有这样的方法。 您必须逐个实现 yourself.by 扩展数组的原型。
JavaScript中已经有一个名为"every"的方法,它将用于查找所有元素是否都满足某些条件。
因此,请使用不同的名称或大写字母或下划线以避免覆盖。
根据您的要求进行编辑
Array.prototype._every = function (n, callback) {
if ( n > this.length )
return new Error("Invalid pair size");
var everyEl = new Array(this.length - (n - 1)),result = [];
var original = this, temp = new Array(n);
original.forEach(function (val, ind) {
if ( (ind + 1) >= n ) {
result[ ind-n ] = callback.apply(this, original.slice(n - ind - 1, ind, n));
}
});
return result;
}
you should call this method like this
var arr = [10,20,30,40];
arr._every(2, function(a, b){
return a+b;
});
相关文章:
- 如何在DataTables 2.1中迭代对象数组
- 是否“;对于的“;循环迭代遵循JavaScript中的数组顺序
- 如何在Jquery中迭代JSON数组
- JS迭代一个数组,同时更改另一个数组
- JavaScript1.7区分数组和对象的迭代程序
- 为什么数组在对象内部迭代对象时存储重复值
- 对数组中的json对象进行迭代
- 迭代和修改Firebase数组会导致未定义
- 在对象上迭代以验证它是否's键存在于数组中
- 在JSON数组中进行迭代,并为其元素设置样式
- 我需要迭代一个JSON数组——不知道如何做到——已经搜索过了,但仍然可以'我一点也不知道
- JavaScript:如何在迭代过程中修改数组中的值
- 使用Ruby数组使用JS在视图中进行迭代和显示
- 使用javascript在数组中迭代和映射JSON
- 在数组中迭代时的JS循环位置
- 在可变长度d3的多维数组上迭代
- 使用 promises/dedelay 异步迭代一组文件
- 是否有一个 JavaScript 或 Lodash 函数可以轻松迭代成对或三元组
- 不能让.offset()方法在迭代一组列表项时工作
- 迭代2个数组并找到匹配,但需要相同的索引