javascript - 如何获取数组下标为偶数的下标所对应的数组内的值
问题描述
哪个大神能有办法
问题解答
回答1:你的问题
如何获取数组下标为偶数的下标所对应的数组内的值
换句话说就是: 获取数组内偶数下标对应的 数组
照上面的句子来看,合理猜测你说的其实是 从二维数组里取得偶下标对应的数组们,并把他们铺平为一个数组
比如
var test = [ [’a’], [’b’], [’c’], [’d’]]
处理之后结果是 [’a’, ’c’] 即 偶数下标对应的数组们合并为一个数组 (下标从 0 开始 0 是偶数)
如果确信是这样 请继续往下看
先获取偶下标对应的数组们var isEven = i => i % 2 === 0; var evens = arr => arr.filter( // 子数组, 序号 => idx 是偶数则返回 true 否则 false // 这样可以过滤掉奇数下标的元素 (subArr, idx) => isEven(idx)); 把用 evens 获得的数组们铺平
比如 [[1], [2]] 处理之后变成 [1, 2]
这个过程就是铺平
var flat = arr => arr.reduce((acc, cur) => { // 每一次的返回值将会作为下一次的 acc 来用 // 那么每一次都把 acc cur 合并在一起 最后就是铺平了 return acc.concat(cur)}, [])组装
// 把 evens 执行结果传给 flat 执行 作为 getAllEvens 的返回值 // 可以想象数学上的 y = g(f(x)); var getAllEvens = arr => { let temp = evens(arr); return flat(temp); }测试
定义待测试数组
// 二维数组 var testArr = [ [’这里’, ’是’, ’0’, ’号’, ’数组’, ’当然是偶数’], [’所以’, ’这’, ’里’, ’是’, ’1号’, ’也就是奇数’], [0,1,2,3,4], [-1, -2, -3, -4]];
期望值是 这里是0号数组当然是偶数 和 0,1,2,3,4
以下是测试代码:
var res = getAllEvens(testArr); console.log(’数组:’, res); console.log(’合并:’, res.join(’,’));ScreenShot
结果如图
预期所得,确信可行。
Links一些知识点
MDN - 数组的 filterMDN - 数组的 reduceMDN - 箭头函数
回答2:var array = [1,2,3,4];for (var i=0;i<array.length;i++){ if (i%2==0) {console.log(array[i]); }}回答3:
var array = [1,2,3,4];var result = array.filter(function(index, value){ if (index%2==0) {return true; }});console(array);console(result);回答4:
帮你简单实现了个函数
let arr = [0,1,2,3,4,5,6,7,8,9];function even(arr){ return arr.filter((val,index)=>{if(index%2 === 0){ return true;} })};even(arr);//输出[0, 2, 4, 6, 8]
相关文章:
1. java - yuicompressor-maven-plugin 合并可用却不压缩, 哪配置不对?2. Android-studio导入.so库问题?3. mysql - 我用SQL语句 更新 行的时候,发现全部 中文都被清空了,请问怎么解决?4. logging - Python日志, 时间应该使用UTC时间还是本地时间?5. python - 两千万条结构化数据怎么进行数据分析6. java - mybatis怎么实现在数据库中有就修改,没有就添加7. javascript - 修改表单多选项时和后台同事配合的问题。8. java - 针对MongoDB当前哪个第三方ORM框架更稳定成熟?9. transform - CSS3的3D变换多次变换如何保持坐标轴不动,或者有矩阵算法可以实现否10. javascript - npm run build后调用api返回index.html
