Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

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' }
]

  1. 複数の値でJavaScript配列の要素を見つける方法は?

    以下は、JavaScript配列の要素を複数の値で検索するコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs

  2. JavaScript配列から文字列を解析する方法は?

    以下は、JavaScript配列から文字列を解析するためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> &nbs