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. 前端 - node vue webpack項目文件結構2. 如何分別在Windows下用Winform項模板+C#,在MacOSX下用Cocos Application項目模板+Objective-C實現一個制作游戲的空的黑窗口?3. html5和Flash對抗是什么情況?4. php如何獲取訪問者路由器的mac地址5. javascript - 在 vue里面用import引入js文件,結果為undefined6. Java反射問題:為什么android.os.Message的recycleUnchecked方法不能通過反射獲取到?7. 小程序怎么加外鏈,語句怎么寫!求救新手,開文檔沒發現8. python - linux怎么在每天的凌晨2點執行一次這個log.py文件9. javascript - vue-resource中如何設置全局的timeout?10. thinkPHP5中獲取數據庫數據后默認選中下拉框的值,傳遞到后臺消失不見。有圖有代碼,希望有人幫忙
