Về cơ bản, bạn lặp lại qua các mục và đẩy từng cái vào mảng mới nếu nó không có nó. Vấn đề là làm thế nào để so sánh các mục khác nhau, vì so sánh đối tượng như thế này sẽ mang lại sai:
[1,2] === [1,2]
// or this
[1,2] == [1,2]
Một trong những cách là chuyển đổi dữ liệu thành định dạng tương đương, thực hiện lặp lại và sau đó chuyển đổi mọi thứ trở lại:
var data = [[1,2], [1,1], [2,0], [1,2], [1,1]];
var noDupes = data
.map[function [item] {
return JSON.stringify[item];
}]
.reduce[function [out, current] {
if [out.indexOf[current] === -1] out.push[current];
return out;
}, []]
.map[function [item] {
return JSON.parse[item];
}];
console.log[data, noDupes];
// [[1, 2], [1, 1], [2, 0], [1, 2], [1, 1]]
// [[1, 2], [1, 1], [2, 0]]
Rõ ràng, với cách tiếp cận này, bạn sẽ mất tài liệu tham khảo vật phẩm. Để giữ chúng, sử dụng:
var data = [[1,2], [1,1], [2,0], [1,2], [1,1]];
var dataUnique = data.reduce[function [out, item] {
return out.concat[out.filter[function [comp] {
return item.toString[] == comp.toString[];
}].length ? [] : [item]]
}, []];
console.log[data, dataUnique];
// [[1,2], [1,1], [2,0], [1,2], [1,1]]
// [[1,2], [1,1], [2,0]]
Nhưng nó chỉ hoạt động nếu mục không chứa bất kỳ đối tượng nào.
Cập nhật [26.01.2016]:
Đây là phiên bản ES2015:
const uniquePairs = pairs => [...new Set[pairs.map[pair => JSON.stringify[pair]]]].map[pair => JSON.parse[pair]]
uniquePairs[[[1,2], [1,1], [2,0], [1,2], [1,1]]]
// [[1,2],[1,1],[2,0]]
Giải thích từng bước:
Chuyển đổi cặp sang chuỗi so sánh. Lưu ý chức năng mũi tên được sử dụng ở đây:
cặp.map [cặp => json.Stringify [cặp]]]=> JSON.stringify[pair]]]
Sử dụng một thể hiện của bộ để chỉ nhận được các chuỗi duy nhất:
Bộ mới [Pairs.map [Pair => json.Stringify [cặp]]]][pairs.map[pair => JSON.stringify[pair]]]
Chuyển đổi Set thành mảng thông qua toán tử lan truyền:
.
Chuyển đổi nó trở lại cấu trúc mảng cặp ban đầu:
..map[pair => JSON.parse[pair]]
Nếu bạn lo lắng về hỗ trợ trình duyệt ES2015, hãy chuyển nó xuống ES5 bằng Babel hoặc các công cụ tương tự.
Bộ lọc lặp lại mảng đa chiều JavaScript với các ví dụ mã
Với bài viết này, chúng tôi sẽ kiểm tra một số trường hợp khác nhau về cách giải quyết vấn đề JavaScript đa chiều lặp lại của bộ lọc.
var arr = [[7,3], [7,3], [3,8], [7,3], [7,3], [1,2]]; arr.map[JSON.stringify].reverse[].filter[[e, i, a] => a.indexOf[e, i+1] === -1].reverse[].map[JSON.parse] // [[7,3], [3,8], [1,2]]
JavaScript repetition refetition JavaScript đã được giải quyết bằng một số kịch bản, như chúng ta đã thấy.
Làm thế nào để loại bỏ các bản sao trong mảng 2D JavaScript?
Làm thế nào để loại bỏ các bản sao theo mảng hai chiều javascript \ câu trả lời mã
- mảng1 = mảng1. bộ lọc [function [val] {
- trả về mảng2. indexof [val] == -1;
- }];
- // Hoặc, với sự sẵn có của ES6:
-
- mảng1 = mảng1. bộ lọc [val =>! mảng2. Bao gồm [val]];
-
mảng1 = mảng1. bộ lọc [val =>! mảng2. Bao gồm [val]];
Làm thế nào để bạn loại bỏ các bản sao từ một mảng hai chiều?
Hủy bỏ các giá trị trùng lặp khỏi mảng đa chiều: Bước 1: Đầu tiên chúng ta sẽ sử dụng funtion serialize [] để tuần tự hóa mảng. Sau đó sử dụng MAP với chức năng Inbuilt Php. Bước 2: Sử dụng hàm unserialize [] để biến chuỗi tuần tự hóa thành giá trị PHP.13-Dec-2021
Làm thế nào để bạn loại bỏ các bản sao khỏi một mảng mảng?
Để loại bỏ các bản sao khỏi một mảng: Đầu tiên, hãy chuyển đổi một mảng các bản sao thành một tập hợp. Bộ mới sẽ ngầm loại bỏ các yếu tố trùng lặp. Sau đó, chuyển đổi bộ trở lại một mảng.
JavaScript có mảng đa chiều không?
JavaScript không có hỗ trợ sẵn có cho các mảng đa chiều, tuy nhiên ngôn ngữ đủ linh hoạt để bạn có thể mô phỏng hành vi này một cách dễ dàng bằng cách điền các mảng của bạn bằng các mảng riêng biệt, tạo cấu trúc đa cấp.31-AUG-2007
Mảng từ trong JS là gì?
Mảng. Từ [] phương thức trả về một mảng từ bất kỳ đối tượng nào có thuộc tính độ dài. Mảng. Từ [] phương thức trả về một mảng từ bất kỳ đối tượng có thể lặp lại.
Làm thế nào để bạn có được các giá trị duy nhất trong một mảng đa chiều?
Bạn có thể sử dụng chức năng duy nhất của mảng PHP cùng với các hàm mảng khác để nhận các giá trị duy nhất từ một mảng đa chiều trong khi bảo tồn các phím.10-feb-2022
Làm thế nào tôi có thể loại bỏ các giá trị trùng lặp khỏi một mảng đa chiều trong PHP?
- Tôi đang giải thích lý do tại sao chúng tôi sử dụng ‘sê -ri hóa và‘ unserialize, trong các bước:
- Bước 1: Chuyển đổi mảng đa chiều thành mảng một chiều.
- Bước 2: Làm cho các giá trị duy nhất.
Bước 3: Hoàn nguyên nó thành mảng đa chiều.
Làm thế nào chúng ta có thể tìm thấy các giá trị trùng lặp trong mảng đa chiều trong PHP?
- “Kiểm tra các giá trị trùng lặp trong mảng đa chiều Php Câu trả lời
- $ Counts = Array_Count_Values [$ Array];
- $ DUPLICATE_TITLE = mảng_Filter [$ mảng, hàm [$ value] Sử dụng [$ Counts] {
- }];
// Hoặc, với sự sẵn có của ES6:
To remove the duplicates from an array of objects: Use the Array. filter[] method to filter the array of objects. Only include objects with unique IDs in the new array.25-Jul-2022
mảng1 = mảng1. bộ lọc [val =>! mảng2. Bao gồm [val]];
Làm thế nào để bạn loại bỏ các bản sao từ một mảng hai chiều?