从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

回到顶部