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

特定の要素をプッシュしてJavaScriptで持続させる


このようなオブジェクトの配列があるとします-

const arr = [
   {flag: true, other: 1},
   {flag: true, other: 2},
   {flag: false, other: 3},
   {flag: true, other: 4},
   {flag: true, other: 5},
   {flag: true, other: 6},
   {flag: false, other: 7}
];

このような配列を1つ取り込んで、次の条件に基づいて並べ替えるJavaScript関数を作成する必要があります-

  • arr.flag ===falseの場合、一致する要素は配列の最初に配置されますが、前の一致する要素の後にのみ配置されます。

  • 一致しない要素は、元の順序と同じままです。

  • 出現順序は重要です。

したがって、上記の配列の場合、出力は-

になります。
const output = [
   {flag: false, other: 3},
   {flag: false, other: 7},
   {flag: true, other: 1},
   {flag: true, other: 2},
   {flag: true, other: 4},
   {flag: true, other: 5},
   {flag: true, other: 6}
];

したがって、この関数のコードを書いてみましょう-

このためのコードは-

になります
const arr = [
   {flag: true, other: 1},
   {flag: true, other: 2},
   {flag: false, other: 3},
   {flag: true, other: 4},
   {flag: true, other: 5},
   {flag: true, other: 6},
   {flag: false, other: 7}
];
const sortByFlag = arr => {
   const sorter = (a, b) => {
      if(!a['flag'] && b['flag']){
         return -1;
      };
      if(a['flag'] && !b['flag']){
         return 1;
      }
      return a['other'] - b['other'];
   }
   arr.sort(sorter);
};
sortByFlag(arr);
console.log(arr);

出力

コンソールの出力は-

になります
[
   { flag: false, other: 3 },
   { flag: false, other: 7 },
   { flag: true, other: 1 },
   { flag: true, other: 2 },
   { flag: true, other: 4 },
   { flag: true, other: 5 },
   { flag: true, other: 6 }
]

  1. Javascript DOMとは何ですか?

    JavaScript Document Object Model(DOM)は、WebページのHTML要素を表現したものです。これは、コンテンツやスタイルを変更してWebページを操作するために使用できるインターフェイスです。 ウェブページを右クリックして[検査]を選択すると、DOMにアクセスできます。これを行うことにより、現在表示しているWebページのHTML要素を含むセクションが(右側または左側に)表示されます。これらの要素にカーソルを合わせると、ページ自体のセクションが強調表示されたときに、ページのどのセクションがそれらによって表されているかを確認できます。 コンソールでコーディ

  2. Javascriptを使用してキューに要素を追加する

    要素をキューにエンキューするということは、それらを配列の最後に追加することを意味します。コンテナ配列の最後をキューの末尾にします。これは、コンテナ配列に関してすべての挿入操作を実行するためです。 したがって、次のようにエンキュー関数を実装できます- 例 enqueue(element) {    // Check if Queue is full    if (this.isFull()) {       console.log("Queue Overflow!");