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

Kết hợp phần tử mảng xen kẽ trong JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào bất kỳ số lượng mảng chữ nào làm đầu vào. Hàm phải chuẩn bị một mảng mới chứa các phần tử được chọn xen kẽ từ tất cả các mảng đầu vào.

Ví dụ, nếu đầu vào là:

Đầu vào

const arr1 = [1, 2, 3, 4];
const arr2 = [11, 12, 13, 14];
const arr3 = ['a', 'b', 'c'];

Đầu ra

const output = [1, 11, 'a', 2, 12, 'b', 3, 13, 'c', 4, 14];

Ví dụ

Dưới đây là mã thực hiện:

const arr1 = [1, 2, 3, 4];
const arr2 = [11, 12, 13, 14];
const arr3 = ['a', 'b', 'c'];
const pickElements = (...arrs) => {
  const res = [];
  const max = Math.max(...arrs.map(el => el.length));
  for (let i = 0; i < max; i++) {
    for (let j = 0; j < arrs.length; j++) {
      if (arrs[j][i]) {
        res.push(arrs[j][i]);
      }
    }
  }
  return res;
};
console.log(pickElements(arr1, arr2, arr3));

Kết quả

[1, 11, 'a', 2, 12, 'b', 3, 13, 'c', 4, 14]