let sum = 0; let x = 0; for (let i = 0; i < 10; i++) { x = x + 1; console.log(x); sum = sum + x; } console.log(sum);3.1. 関数型コード(JavaScript)
const add = (a, b) => a + b; const sum = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10].reduce(add); console.log(sum);
[...Array(n).keys()][1:n] だと
[...Array(10)].map((v,i)=>1+i)だろうか?
let n = ((end - start + step - include_end ? 0 : 1) / step) | 0; [...Array(n)].map((v,i)=>start + step * i)みたいになりそう。
let sum = 0; for (const v of [1,2,3,4,5,6,7,8,9,10]) sum += v; console.log(sum);レガシーな JS だと
let sum = 0; let a = [1,2,3,4,5,6,7,8,9,10] for (let i in a) sum += a[i]; console.log(sum);
let sum = 0; let a = [1,2,3,4,5,6,7,8,9,10] for (let i = 0; i < length(a); i++) sum += a[i]; console.log(sum);みたいな感じかな?
const add = (a, b) => a + b; const sum = [...Array(10)].map((v,i)=>1 + i).reduce(add); console.log(sum);だろうか?
function * range ( start, end, step ) { let state = start; while ( state < end ) { yield state; state += step; } return; }; const generate_array = (start,end,step) => Array.from( range(start,end,step) );
const array = generate_array(1,10,2);みたいな感じ。
Number.prototype[Symbol.iterator] = function* () { for (let i=0; i < this; i++) { yield i; } };としておくことで、
for (x of 5) { console.log(x) }
[...5]みたいな連番生成が可能になる。