首頁 >web前端 >js教程 >如何在 JavaScript 中複製 Python 的 Zip 函數?

如何在 JavaScript 中複製 Python 的 Zip 函數?

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-28 18:58:10503瀏覽

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

Python Zip 函數的 Javascript 等價項

可以使用各種方法在 JavaScript 中複製 Python 的 zip 函數。讓我們探討兩種常見的方法:

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, [...]).

以上是如何在 JavaScript 中複製 Python 的 Zip 函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn