ホームページ >ウェブフロントエンド >jsチュートリアル >Python の Zip 関数を JavaScript で複製するにはどうすればよいですか?

Python の Zip 関数を JavaScript で複製するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-28 18:58:10531ブラウズ

How Can I Replicate Python's Zip Function in JavaScript?

Python の Zip 関数に相当する JavaScript

Python の zip 関数は、さまざまなアプローチを使用して JavaScript で複製できます。 2 つの一般的な方法を見てみましょう:

1.配列マッピング

このメソッドは、入力配列の長さが等しいことを前提とし、最初の配列をマッピングして、他の配列の対応する要素とのペアを作成します。

function zip(...arrays) {
  return arrays[0].map((_, i) => arrays.map((array) => array[i]));
}

例:

const array1 = [1, 2, 3];
const array2 = ['a', 'b', 'c'];
const array3 = [4, 5, 6];

const zippedArray = zip(array1, array2, array3);

console.log(zippedArray); // [[1, 'a', 4], [2, 'b', 5], [3, 'c', 6]]

2. Array.apply と配列マッピング

このメソッドは、長さが等しい配列と等しくない配列の両方を処理し、欠損値の場合は未定義を返します。

function zip(...arrays) {
  const longest = arrays.reduce((a, b) => (a.length > b.length ? a : b), []);

  return Array.apply(null, Array(longest.length)).map((_, i) =>
    arrays.map((array) => array[i])
  );
}

例:

const array1 = [1, 2, 3];
const array2 = ['a', 'b'];
const array3 = [4, 5, 6];

const zippedArray = zip(array1, array2, array3);

console.log(zippedArray); // [[1, 'a', 4], [2, 'b', 5], [3, undefined, 6]]

注: 等しくない配列で上記のメソッドのいずれかを使用している場合長さは、それ自身の逆数ではないことに注意してください。 Python の zip(*[...]) イディオムを模倣するには、zip.apply(this, [...]) を使用します。

以上がPython の Zip 関数を JavaScript で複製するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。