JavaScript kết hợp nhiều mảng
Đó là bởi vì sẽ mất rất nhiều thời gian và đến một lúc nào đó bạn sẽ có quá nhiều kết hợp mà chúng sẽ không vừa với một mảng. Show Mục lụcBỏ qua mục lục
Điểm khởi đầuTheo "kết hợp mục mảng", tôi đang đề cập đến bài đăng trên blog của mình từ hôm qua. Tìm tất cả các kết hợp có thể có của các mục mảng trong JS Đây là mã
phạm vi lỗiMã ném nếu độ dài của mảng đầu vào quá dài. Trong Firefox giới hạn là 20
Thông báo lỗi của Firefox có vẻ hữu ích hơn vì vấn đề là 1 được gọi với quá nhiều đối số. Trong Firefox, giới hạn là 500.000 mục
Tránh RangeErrorsChúng tôi có thể cố gắng tránh vấn đề bằng cách tránh hoàn toàn cú pháp lây lan
(Tôi nghĩ rằng điều này cũng sẽ tăng hiệu suất, nhưng có vẻ như không. Có ý nghĩa mặc dù. chúng tôi tránh lặp qua 2, điều này tốt, nhưng bây giờ chúng tôi đang gọi 1 nhiều lần nữa chỉ với một đối số. )Nó chậmGiờ đây, các mảng đầu vào lớn hơn hoạt động, nhưng việc kết hợp các mảng đầu vào lớn ngày càng chậm
Không ai có thời gian để chờ đợi lâu như vậy Độ dài của mảng đầu vào vẫn còn hạn chếTrong Firefox, độ dài tối đa của một mảng dường như là 0
Độ dài của mảng được trả về bởi 1 tình cờ là 2
(Bài toán tính tổng các tổ hợp. ) Nói cách khác, độ dài tối đa của mảng đầu vào là 32 Nhưng các mảng đầu vào dài sẽ không thực tế vì việc nhận tất cả các kết hợp sẽ mất quá nhiều thời gian. Thêm vào đó sẽ có khá nhiều sự kết hợp. 0 = 4.294.967.295. Hơn 4 tỷNghĩ về các lựa chọn thay thếĐược rồi, vì vậy độ dài của mảng đầu vào được giới hạn ở 32 (ít nhất là trong Firefox) và việc nhận được tất cả các kết hợp sẽ mất nhiều thời gian, vì vậy hãy suy nghĩ |