今天突然發現Array.fill方法不能亂用,譬如生成楊輝三角
用fill方法:
const pascalTriangle = n => {
const res = new Array(n).fill([]);
for (let i = 0; i < n; i++) {
res[i].length = i + 1;
for (let j = 1; j <= n; j++) {
res[i][0] = 1;
res[i][res[i].length - 1] = 1;
i >= 2 && j < i && (res[i][j] = res[i - 1][j - 1] + res[i - 1][j])
}
}
return res;
};
生成結果每一項全變成最後一項了
還是老老實實依次把每個項賦值都成空數組:
const pascalTriangle = n => { const res = new Array(n).fill([]); for (let i = 0; i < n; i++) { res[i].length = i + 1; for (let j = 1; j <= n; j++) { res[i][0] = 1; res[i][res[i].length - 1] = 1; i >= 2 && j < i && (res[i][j] = res[i - 1][j - 1] + res[i - 1][j]) } } return res; };