2017-03-13 7 views
-3

私は数学の助けが必要です。 0,4(5項目)からインデックスを受け取り、次の値で配列を生成して配列しなければならないと言っています数学のインクリメントアルゴリズムの基になるインデックス

インデックス0の場合、配列は[0,20]となります。

index min-max 
================ 
0  0,20 
1  20,40 
2  40,60 
3  60, 80 
4  80, 100 

アルゴリズムはどのようになりますか?乗算しようとすると追加できませんでした。

+0

分=私は*(最大= 20 *、および20)+ 20 – G0dsquad

+0

'[Index * 20、Index * 20 + 20]'? –

+0

このQ/Aサイトは、宿題や課題を解決するためのプラットフォームではありません。また、解決策を尋ねる前に研究努力がなされていないようだ... – Tom

答えて

1

これは、forループと組み合わせた単純な線形工程で達成することができます。

var stop = 5, step = 20; 
 
for (var i = 0, min = 0, max = step; i < stop; i++, min+=step, max+=step) { 
 
    console.log(i, min, max); 
 
}
.as-console-wrapper { top: 0; max-height: 100% !important; }

次の2つの追加の変数を作成したくない場合は、単純に掛けることができます。あなたはループをしたくない場合は

var stop = 5, step = 20; 
 
for (var i = 0; i < stop; i++) { 
 
    console.log(i, i * step, (i + 1) * step); 
 
}
.as-console-wrapper { top: 0; max-height: 100% !important; }

、あなたはこれを試すことができます。

function minMaxMap(count, step) { 
 
    return Array.from(new Array(count), (_, i) => [i * step, (i + 1) * step]); 
 
} 
 

 
var items = minMaxMap(5, 20); 
 

 
items.forEach((item, index) => console.log([index].concat(item).join(', ')));
.as-console-wrapper { top: 0; max-height: 100% !important; }

+0

ループにしたくない場合はどうすればいいですか?私は単にインデックスを受け取る関数を持っているといいますか? –

+0

@GialaJefferson上記のように 'Array.from'を使うことができます。 –

0

var res = [0, 1, 2, 3, 4].map(function (e) { return [e * 20, e * 20 + 20]; }); 
 
console.log(res);

編集:Nは、所望の配列のサイズを定義する任意の数とします。

var N = 10; 
 
var res = new Array(N).fill(0).map(function (e, i) { return [i * 20, i * 20 + 20]; }); 
 
console.log(res);

+0

配列の最後の項目の2番目のインデックスは100でなければなりません。項目が5以外の値であれば、どのように柔軟にすることができますか? –

+0

@ Giala Jefferson、私の編集を見てください。 –

0

あなたは最小最大の配列を返す、これを達成するためにmapを使用することができます。

const data = [0,1,2,3,4,5] 
 

 
function minMax(index) { 
 
return [index * 20, (index * 20) + 20] 
 
} 
 

 
const out = data.map(minMax) 
 
console.log(out)

関連する問題