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

JavaScriptで多次元配列に並べ替える


次の配列の配列があるとします-

const arr = [
["A","F","A","H","F","F"],
 ["F","A","A","F","F","H"]
];

そのような配列を1つ取り込むJavaScript関数を作成する必要があります。

関数は、これらのルールに従って、指定された配列のすべてのサブ配列を内部的に並べ替える必要があります-

  • 要素が「A」でも「F」でもない場合は、その位置を維持する必要があります
  • 要素が「A」または「F」のいずれかである場合は、アルファベット順に並べ替える必要があります

したがって、上記の配列の最終出力は次のようになります-

const output = [ ["A","A","A","H","A","F"],
["F","F","F","F","F","H"]
];

サブ配列の要素は、並べ替えアルゴリズムによって変更される場合、配列を変更できることに注意してください。

const arr = [
   ["A","F","A","H","F","F"],
    ["F","A","A","F","F","H"]
];
const customSort = (arr = []) => {
   const order = [].concat(...arr.slice()),
   res = []; order.forEach((el, ind) => {
      if (el === 'A') {
         const fIndex = order.indexOf('F');
         if (fIndex < ind){
            order[fIndex] = 'A'; order[ind] = 'F';
         };
      };
   })
   arr.forEach(el => res.push(order.splice(0, el.length)))
   return res;
}
console.log(customSort(arr));

出力

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

になります
[ [ 'A', 'A', 'A', 'H', 'A', 'F' ], [ 'F', 'F', 'F', 'F', 'F', 'H' ] ]

  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>   &n

  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> &n