Computer >> Máy Tính >  >> Lập trình >> Javascript

JavaScript tương đương với hàm zip của Python

Chúng ta phải viết hàm tương đương JavaScript của hàm zip của Python. Nghĩa là, với nhiều mảng có độ dài bằng nhau, chúng ta bắt buộc phải tạo một mảng các cặp.

Ví dụ:nếu tôi có ba mảng trông như thế này -

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

Mảng đầu ra phải là -

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

Do đó, hãy viết mã cho hàm zip () này. Chúng ta có thể thực hiện điều này theo nhiều cách như sử dụng phương thức thereduce () hoặc phương thức map () hoặc bằng cách sử dụng các vòng lặp for lồng nhau đơn giản nhưng ở đây chúng ta sẽ hoàn thiện nó bằng vò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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

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