在 6 次迭代的步长中每三个项目更改一次
change every three items in a step of 6 iteration
>我有一个项目数组(长度可能不同)。我需要以不同的方式更改每个前三个项目,然后是第四和第五,然后是第六个,然后重新开始。
例如:
var arr = [1,2,3,4,5,6,7,9,10];
var newArr = arr.map(function (value, index) {
// indexes 1,2,3 value+1
// indexes 4,5 value+2
// index 6 value+3
// indexes 7,8,9 value+1
// indexes 10,11 value+2
// starting over and over...
});
console.log(newArr);
谢谢!
您可以使用模数和一些条件来返回所需的内容
var arr = [1,2,3,4,5,6,7,9,10];
var newArr = arr.map(function (value, index) {
var modulo = (index % 6) + 1,
added = 1;
if ( modulo === 4 || modulo === 5 ) added = 2;
if ( modulo === 6 ) added = 3;
return value + added;
});
document.body.innerHTML = '<pre>' + JSON.stringify(newArr, null, 4) + '</pre>';
打高尔夫球,只是为了好玩
var newArr = arr.map(function (v, i) {
return v + ([3,4].indexOf(i%6) != -1 ? 2 : (i%6) === 5 ? 3 : 1);
});
我想你的意思是索引而不是值。如果是这种情况,那么这应该有效:
var arr = [1, 2, 3, 4, 5, 6, 7, 9, 10];
var newArr = arr.map(function(value, index) {
var m = index % 6;
if (m < 3) {
return value + 1;
}
if (m < 5) {
return value + 2;
} else {
return value + 3;
}
});
alert(newArr);
var arr = [1,2,3,4,5,6,7,9,10];
func_123 = function( value, index ){
console.log( 'stuff of first three ' + value + ' ' + index )};
func_45 = function( value, index ){
console.log( 'stuff of four & five ' + value + ' ' + index )};
func_6 = function( value, index ){
console.log( 'stuff of six ' + value + ' ' + index )};
var newArr = arr.map(function (value, index) {
[ func_123, func_123, func_123, func_45, func_45, func_6 ][ index % 6 ]( value, index )});
相关文章:
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- 如何使用PHP和JS级联三个下拉列表
- 灯光问题(使用三个.js)
- 在三个.js中创建球体(例如地球)的磁力线
- 什么'这是从第三个函数上的async 1st函数获得结果的更好方法
- javascript第三个XMLHttpRequest被拒绝.但前两个是允许的
- 将循环中的两个文本框相乘,并在第三个文本框上显示结果
- 根据前两个下拉ID显示第三个下拉列表
- 在数组JS中查找三个重复项
- Meteor和S3:如何通过一次上传/编辑定义三个不同的图像
- 如何替换javascript字符串中的前三个连字符
- 保存两个模型(属于第三个模型)和一个提交
- 将文本字段限制为三个数字
- 三个js键盘旋转
- 匹配三个正则表达式中的任意一个,以先到的为准(在javascript中)
- 检查 mongodb 中是否存在项目(多个查询)
- 加载模型与三个.js
- 在 6 次迭代的步长中每三个项目更改一次
- 如何选择第三个列表项目与javascript
- 在jCarousel中允许三个以上的项目