指定された数だけ配列をずらすロジックを組んでみる
- 2020/03/06
- JavaScript
要件
2つの配列を渡される。1つ目の配列はずらす数、2つ目の配列は対象となる配列
1つ目の配列の数だけ配列を右にずらしていくロジックを組む
入力値が以下
[5, 4]
[1, 2, 3, 4, 5]
出力値は以下を期待する
[5, 1, 2, 3, 4]
入力
[20, 10]
[41, 73, 89, 7, 10, 1, 59, 58, 84, 77, 77, 97, 58, 1, 86, 58, 26, 10, 86, 51]
出力
[
'77', '97', '58', '1',
'86', '58', '26', '10',
'86', '51', '41', '73',
'89', '7', '10', '1',
'59', '58', '84', '77'
]
実装
function myFunc(a, d) {
const key = a;
const base = d;
const arrayStagger = (base, key) => {
let result = [];
let k = 0;
for(let i = 0; i < base.length; i++){
if(base.length > i + key){
result[i+key] = base[i];
} else {
result[k] = base[i];
k++;
}
}
return result;
}
let result;
for(let i =0; i < key.length; i++){
result = arrayStagger(base, parseInt(key[i], 10));
}
return result;
}
まとめ
ひとまず書いてみた。arrayStagger関数は対象となる配列とどれだけずらすとかという数値を入れることで
ずらした結果の配列を返してくれる
キーとなる数とループ中のインデックスで判定して配列を作る
最後にずらす数は複数入ってくるので、その分だけループして結果を返す