从JavaScript中的数组中查找唯一和最大的字符串值
假设我们有一个这样的对象数组-
示例
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'}
]
我们的工作是编写一个接受此数组和一个数字n的函数,该函数应返回n个对象的数组,这些对象的文本键的字符串值最长,而所有对象的文本键的值必须唯一。如果不存在n个唯一对象,则应返回所有唯一对象。
因此,让我们为该函数编写代码-
示例
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) => {
return 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));
输出结果
控制台中的输出将为-
[{ text: 'secur' },
{ text: 'users' },
{ text: 'form' },
{ text: 'user' }
]
[
{ text: 'secur' },
{ text: 'users' },
{ text: 'form' },
{ text: 'user' },
{ text: 'secu' },
{ text: 'use' },
{ text: 'sec' },
{ text: 'for' }
]
以上是 从JavaScript中的数组中查找唯一和最大的字符串值 的全部内容, 来源链接: utcz.com/z/316737.html