Tôi biết về this question, simplest code for array intersection nhưng tất cả các giải pháp cho rằng số lượng mảng là hai, không thể chắc chắn trong trường hợp của tôi.Cách tính điểm giao nhau của nhiều mảng trong JavaScript? Và [equals: function] có nghĩa là gì?
Tôi có số div trên trang có dữ liệu chứa mảng. Tôi muốn tìm các giá trị chung cho tất cả các mảng. Tôi không biết có bao nhiêu div/mảng tôi sẽ có trước. Cách tốt nhất để tính giá trị chung cho tất cả các mảng là gì?
var array1 = ["Lorem", "ipsum", "dolor"];
var array2 = ["Lorem", "ipsum", "quick", "brown", "foo"];
var array3 = ["Jumps", "Over", "Lazy", "Lorem"];
var array4 = [1337, 420, 666, "Lorem"];
//Result should be ["Lorem"];
Tôi tìm thấy giải pháp khác ở nơi khác, sử dụng Underscore.js.
var arrayOfArrays = [[4234, 2323, 43], [1323, 43, 1313], [23, 34, 43]];
_.intersection.apply(_, arrayOfArrays)
//Result is [43]
Tôi đã thử nghiệm điều này với dữ liệu giả đơn giản ở cuối của tôi và có vẻ như nó hoạt động. Nhưng đối với một số lý do, một số các mảng Tôi đang sản xuất, trong đó chứa các chuỗi đơn giản, cũng tự động bao gồm một giá trị gia tăng, "bằng: chức năng":
["Dummy1", "Dummy2", "Dummy3", equals: function]
Và bất cứ khi nào tôi sử dụng phương pháp Underscore.js ngã tư, trên một mảng các mảng, tôi luôn nhận được [equals: function] trong các công cụ dev, và không - nếu "Dummy3" là phổ biến cho tất cả các mảng - ["Dummy3"].
Vì vậy, TL; DR có giải pháp khác cho mảng giao cắt phù hợp với trường hợp của tôi không? Và bất cứ ai có thể giải thích những gì [bằng: chức năng] có nghĩa là ở đây? Khi tôi mở rộng mục trong các công cụ dev, nó tạo ra một mảng trống và một danh sách các phương thức có sẵn trên các mảng (pop, push, shift etc), nhưng các phương thức này đều bị mờ đi, trong khi equals: function được tô sáng.
Ví dụ về Underscore.js có vẻ hơi gây nhầm lẫn? Mảng cuối cùng không chứa 43. – Arg0n
kk Tôi sẽ sửa lỗi này: s – Gaweyne
Bạn có một ',' thiếu ở cuối 'mảng2'. Tôi vừa thử sử dụng '_.intersection (array1, array2, array3, array4)' trong giao diện điều khiển lodash.com và nó hoạt động trở lại '" Lorem "' –