Cho mảng đối tượng có key text. Viết hàm nhận mảng và số n, trả về n đối tượng có chuỗi text dài nhất và giá trị text duy nhất. Nếu không đủ n đối tượng duy nhất, trả về tất cả.
Ví dụ
const arr = [ {text: 'use'}, {text: 'secur'}, {text: 'form'}, {text: 'user'}, {text: 'users'}, {text: 'form'}, {text: 'secur'}, {text: 'sec'}, {text: 'users'}, {text: 'secu'}, {text: 'secur'}, {text: 'for'}, {text: 'form'}];const sorter = (a, b) => b.text.length - a.text.length;const longestUnique = (arr, num) => { const copy = arr.slice(); copy.sort(sorter); const map = new Map(); const uniqueCopy = copy.filter(el => { const exists = map.get(el.text); if (exists) return false; map.set(el.text, 1); return true; }); return uniqueCopy.splice(0, num);};console.log(longestUnique(arr, 4));console.log(longestUnique(arr, 12));Kết quả
Đầu ra trong console sẽ là:
[ { text: 'secur' }, { text: 'users' }, { text: 'form' }, { text: 'user' } ][ { text: 'secur' }, { text: 'users' }, { text: 'form' }, { text: 'user' }, { text: 'secu' }, { text: 'use' }, { text: 'sec' }, { text: 'for' } ]