一次从数组中取三个元素
Take three elements at a time from array
我有一个由9个元素组成的数组:
var ar = ['a','a','a','a','a','a','a','a','a'];
我需要通过一个返回true或false的函数一次控制三个元素。如果第一个语句返回true,则其他语句不必执行即可获得一个true结果。
var one = fun(ar.slice(0, 3));
if (one != false) document.write(one);
var two = fun(ar.slice(3, 6));
if (two != false) document.write(two);
var three = fun(ar.slice(6, 9));
if (three != false) document.write(three);
我怎样才能简化这个过程?为了避免创建多数组。
谢谢! !
您可以使用带有切片参数的数组并迭代Array#some
function fun(array) {
return array.reduce(function (a, b) { return a + b; }) > 10;
}
var ar = [0, 1, 2, 3, 4, 5, 6, 7, 8];
[0, 3, 6].some(function (a) {
var result = fun(ar.slice(a, a + 3));
if (result) {
console.log(a, result);
return true;
}
});
可能这就是你需要的
查看下面的演示
var ar = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm'];
for(var i = 0; i < ar.length; i+=3){
console.log(ar.slice(i, i+3));
}
听起来像是需要某种类型的迭代器。一个显式的例子是这样的:
var input = [0, 1, 2, 3, 4, 5, 6, 7, 8];
// console.log(checkChunks(input, 2, checkChunkSum(10)));
console.log(checkChunks(input, 3, checkChunkSum(10)));
function checkChunks(arr, chunkLength, checker) {
var startIndex = 0;
var chunk;
while ((chunk = arr.slice(startIndex, startIndex += chunkLength)).length) {
var result = checker(chunk);
console.log('Checking chunk: ', chunk);
if (result !== false) {
return {
chunk: chunk,
result: result
};
}
}
return false;
}
function checkChunkSum(max) {
return function checkSum(arr) {
return arr.reduce(sum, 0) > max;
}
}
function sum(a, b) {
return a + b;
}
相关文章:
- 如何在javascript中将类添加到第三个
- 元素
- 如何使用javascript将两个dom元素集合合并到第三个集合中
- 获取两个输入元素的值,并检查第三个元素的值.将值设置为第四个元素
- 合并两个Javascript数组,一次合并三个元素
- 由于相机位置的原因,无法在场景中显示三个.js元素
- 将一个元素移动到另一个元素中,其余元素将转到第三个位置
- 如何使用 jquery 选择器获取第三个或第四个元素并设置其 id
- 在遍历数组时每三个元素包装一次
- AngularJS:从JSON文件中获取三个随机元素
- 如何在悬停元素时将 JavaScript 链接到以更改元素的图片并显示块第三个元素
- 使用 vue 模板引导行类每个第三个元素
- 如何计算行中三个元素的宽度可以为300px
- 一次从数组中取三个元素
- 触发“三个”的点击事件.元素
- 检查元素在jquery的3个元素行中是第一个还是第三个
- 在javascript中添加数组的前三个元素
- 使HTML表的三个元素成为下拉菜单
- 选择每个父元素中的第三个元素
- 如何基于前三个字符设置元素样式
- 如何在第三个元素之后删除每个 {元素}