Tôi có hai mảng số nguyên chứa các giá trị số. Tôi muốn xem qua cả hai danh sách và kiểm tra tính phổ biến (hoặc thiếu) giữa các danh sách. I E. Tôi muốn lặp qua các mảng (s) và tìm thấy các mục xuất hiện trong cả hai danh sách, trong khi trong một chức năng riêng biệt tôi muốn đi qua các mảng và tìm các mục trong lần đầu tiên và không phải trong lần thứ hai.Javascript: so sánh hiệu quả hai mảng số nguyên
Cách rõ ràng để làm điều này được lồng cho vòng:
var containedInFirst = false;
for (var primaryID = 0; primaryID < PrimaryArray.length; primaryID++) {
containedInFirst = false;
for (var secondaryID = 0; secondaryID < SecondaryArray.length; secondaryID++) {
if (PrimaryArray [primaryID] === SecondaryArray[secondaryID]) {
containedInFirst = true;
break;
}
}
//Do some more stuff based on the value of containedInFirst here
}
Nhưng với danh sách có thể chứa hàng trăm hoặc hàng ngàn hồ sơ này là khá nhiều itteration và bộ xử lý chuyên sâu. Do đó tôi tự hỏi liệu có cách nào hiệu quả hơn để thực thi mã trên không? Không chỉ tìm kiếm thực tế mà còn hiệu quả hơn một mảng Integer làm vùng chứa cho các giá trị, hoặc không sử dụng lồng nhau cho các vòng lặp để duyệt và so sánh nội dung.
Bất kỳ suy nghĩ nào về các giải pháp hiệu quả hơn hoặc thanh lịch hơn?
chỉ là một gợi ý cho phần "tao nhã" =) chạy nhiệm vụ đó trong một WebWorker nếu trình duyệt của bạn hỗ trợ họ –
làm bạn phải duy trì trật tự? mảng được sắp xếp? bạn có số nguyên lớn trong mảng? – Lauri