【JavaScript】配列を任意の数列で初期化
4484 ワード
関数として数列を定義して、その数列を配列として初期化したいときの効率的な書き方です。
function f(n) {
return 2 ** (n + 1) - 1;
}
例として2のべき乗から1を引いたメルセンヌ数の数列を定義しました。
これをよくやる方法で初期化してみます。
new-array-1.js
function f(n) {
return 2 ** (n + 1) - 1;
}
const a1 = new Array(10);
for (let n = 0; n < 10; n++) {
a1[n] = f(n);
}
console.log(a1);
// => [1, 3, 7, 15, 31, 63, 127, 255, 511, 1023]
可読性は高いのでこれでもいいのですが、ワンライナーで書く方法を思いつきました。
new-array-2.js
function f(n) {
return 2 ** (n + 1) - 1;
}
const a2 = Array.from(Array(10), (_, n) => f(n));
console.log(a2);
// => [1, 3, 7, 15, 31, 63, 127, 255, 511, 1023]
Array.from
で渡す関数の第2引数には Array.map
や Array.forEach
同様配列のインデックスが渡るので、それを応用しました。
参考
Author And Source
この問題について(【JavaScript】配列を任意の数列で初期化), 我々は、より多くの情報をここで見つけました https://qiita.com/butchi_y/items/771a5bd56b03530363ec著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .