Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tương đương hàm zip của Python trong JavaScript

Chúng ta cần viết hàm tương đương zip() của Python. Cho nhiều mảng cùng độ dài, tạo mảng các cặp phần tử tương ứng.

Ví dụ với ba mảng:

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

Kết quả mong đợi:

const output = [[1, 'a', 4], [2, 'b', 5], [3, 'c', 6]]

Sử dụng lặp forEach() lồng nhau:

Ví dụ

const array1 = [1, 2, 3];const array2 = ['a', 'b', 'c'];const array3 = [4, 5, 6];const zip = (...arr) => {  const zipped = [];  arr.forEach((element, ind) => {    element.forEach((el, index) => {      if (!zipped[index]) {        zipped[index] = [];      }      if (!zipped[index][ind]) {        zipped[index][ind] = [];      }      zipped[index][ind] = el || '';    });  });  return zipped;};console.log(zip(array1, array2, array3));

Kết quả

Đầu ra trong console sẽ là:

[ [ 1, 'a', 4 ], [ 2, 'b', 5 ], [ 3, 'c', 6 ] ]