Last Updated: 2/6/2024, 5:44:57 AM

# 複数の配列を
同時に for 文で回す。

# 使用例

JavaScript で Python の zip のようなものを使いたいなと思いました。 使用例は以下のような具合です。 for 文でも分割代入できるんですね。

for (let [elm1, elm2, elm3]
       of zip(array1, array2, array3)) {
    console.log(elm1, elm2, elm3);
}

# 全体像

コードの全体像は以下のような具合です。

//
// 使用例
//
const array1 = [
  'apple', 'orange', 'grape',
];
const array2 = [
  'rabbit', 'dog', 'cat',
];
const array3 = [
  'car', 'bicycle', 'airplane',
];

for (let [elm1, elm2, elm3]
       of zip(array1, array2, array3)) {
    console.log(elm1, elm2, elm3);
}

//
// 定義
//
function* zip(...args) {
    
    const length = args[0].length;
    
    // 引数チェック
    for (let arr of args) {
        if (arr.length !== length){
            throw "Lengths of arrays are not eqaul.";
        }
    }
    
    // 
    for (let index = 0; index < length; index++) {
        let elms = [];
        for (arr of args) {
            elms.push(arr[index]);
        }
        yield elms;
    }
}

# 参考文献

参考にさせていただいた記事です。

JavaScript で2つ以上の複数の配列を同時に for 文で回す。