📟

JS演習 二次元配列 ★2

に公開

今回は二次元配列を作る問題です。二次元配列は配列の中に配列がある配列です。見ればわかります。

二次元配列の作成 ★★☆☆☆

さっそく作ってください。いうことは何もないです。

/**
 * 行と列を決めて二次元配列を作成
 * @param {number} rows - 配列の行
 * @param {number} cols - 配列の列
 * @param {any} defVal - 値 (初期値: 0)
 * @returns {Array} 二次元配列
 */
// コードを書いてね。

makeTable(3, 2);// -> [[0, 0], [0, 0], [0, 0]]
makeTable(1, 4, 'str');// -> [['str', 'str', 'str', 'str']]
ヒント 配列に同じ要素を入れる

すべての要素に同じ値を入れたいときはfill()プロパティを使います。

[6, 2, 3, 8].fill(3);// -> [3, 3, 3, 3]
[3, 5, 9, 4].fill(2, 2);// -> [3, 5, 2, 2]
// 入れ始める位置を決定
[2, 4, 1, 7].fill(9, 1, 3);// -> [2, 9, 9, 7]
// 入れ終える位置を決定

const arr = Array(3).fill([0]);// -> [[0], [0], [0]]
arr[2][0] = 3;
console.log(arr);// > [[3], [3], [3]]
// オブジェクトは共有されるので注意

二次元配列の切り取り ★★☆☆☆

二次元配列から二次元配列を切り取ってください。

/**
 * 二次元配列を切り取って新しい二次元配列を作成
 * @param {Array<Array>} grid - 元の二次元配列
 * @param {Array} from - 切り取り始めるインデックス
 * @param {Array} to - 切り取り終えるインデックス
 * @returns {Array<Array>} 切り取り終えた二次元配列
 */
// ここに書いてね。

slice2DArr(
    [[1, 9, 7, 3], [8, 7, 5, 7], [7, 2, 3, 6], [1, 3, 4, 2]],
    [1, 0],
    [2, 2]
);// -> [[8, 7, 5], [7, 2, 3]]

Discussion