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

繰り返し文字なしで文字列を作成する方法n個別の文字リスト? JavaScriptで


たとえば、単一の文字の配列を分離するとします。これらすべての配列を取り込むJavaScript関数を作成する必要があります。

関数は、-

のようなすべての可能な文字列を作成する必要があります
  • 各配列からの文字が1つだけ含まれています

  • 繰り返し文字を含めることはできません(配列には共通の要素が含まれる可能性があるため)

この問題の目的のために、これらの3つの配列を検討しますが、可変数の配列でうまく機能するように関数を記述します-

const arr1 = [a,b ,c,d ];
const arr2 = [e,f ,g ,a];
const arr3 = [m, n, o, g, k];

このためのコードは-

になります
const arr1 = ['a','b' ,'c','d' ];
const arr2 = ['e','f' ,'g' ,'a'];
const arr3 = ['m', 'n', 'o', 'g', 'k'];
const allCombinations = (...arrs) => {
   let res = [];
   const reduced = arrs.reduce((acc, b) => acc.reduce((r, v) => {
      return r.concat(b.map(el => {
         return [].concat(v, el);
      }))
   }, [])
   );
   res = reduced.filter(el => new Set(el).size === el.length);
   return res.map(el => el.join(' '));
};
console.log(allCombinations(arr1, arr2, arr3));

出力

そして、コンソールの出力は-

になります
[
   'a e m', 'a e n', 'a e o', 'a e g', 'a e k',
   'a f m', 'a f n', 'a f o', 'a f g', 'a f k',
   'a g m', 'a g n', 'a g o', 'a g k', 'b e m',
   'b e n', 'b e o', 'b e g', 'b e k', 'b f m',
   'b f n', 'b f o', 'b f g', 'b f k', 'b g m',
   'b g n', 'b g o', 'b g k', 'b a m', 'b a n',
   'b a o', 'b a g', 'b a k', 'c e m', 'c e n',
   'c e o', 'c e g', 'c e k', 'c f m', 'c f n',
   'c f o', 'c f g', 'c f k', 'c g m', 'c g n',
   'c g o', 'c g k', 'c a m', 'c a n', 'c a o',
   'c a g', 'c a k', 'd e m', 'd e n', 'd e o',
   'd e g', 'd e k', 'd f m', 'd f n', 'd f o',
   'd f g', 'd f k', 'd g m', 'd g n', 'd g o',
   'd g k', 'd a m', 'd a n', 'd a o', 'd a g',
   'd a k'
]

  1. CSSとJavaScriptでやることリストを作成するにはどうすればよいですか?

    CSSとJavaScriptを使用してやることリストを作成するためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    html {       font-famil

  2. JavaScriptでリストアイテムを閉じる方法は?

    JavaScriptでリストアイテムを閉じるためのコードは次のとおりです- 例 <!DOCTYPE html> <html> <head> <meta name="viewport" content="width=device-width, initial-scale=1" /> <style>    body {       font-family: "Segoe UI", Tahoma, Geneva, Verdana,