JavaScript の配列から奇数に出現した数値/要素を削除する

王林
リリース: 2023-09-06 22:53:07
転載
1528 人が閲覧しました

在 JavaScript 中从数组中删除任何数字/元素的奇数出现

次のような数値の配列があるとします。

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
ログイン後にコピー

このような配列を最初で唯一のパラメータとして受け入れる JavaScript 関数を作成する必要があります。次に、関数は、配列内で奇数回 (1 回だけを除く) 出現するそのような数値をすべて検索する必要があります。

たとえば、

上記の配列では、数値 1 と 3 が両方とも 3 回 (奇数) 出現するため、関数はこれら 2 つの数値の 3 番目の出現を削除する必要があります。

出力配列は次のようになります -

const output = [1, 6, 3, 1, 3, 6];
ログイン後にコピー

各数値の出現回数を追跡するためにハッシュ マップを準備し、最後にマップを反復して最後の数値を削除します。奇数の出現にその数を乗じたもの。

マップ内の各キーは配列値を保持します。最初の要素はその要素の出現回数、2 番目の要素はその要素が最後に出現したインデックスです。

コードは-

ライブデモ

const arr = [1, 6, 3, 1, 3, 1, 6, 3];
const removeOddOccurence = (arr =[]) => {
   // keeping the original array unaltered
   const copy = arr.slice();
   const map = {};
   arr.forEach((num, ind) => {
      if(map.hasOwnProperty(num)){
         map[num][0]++;
         map[num][1] = ind;
      }else{
         map[num] = [1, ind];
      };
   });
   for(const key in map){
      const [freq, index] = map[key];
      if(freq !== 1 && freq % 2 === 1){
         copy.splice(index, 1, '');
      };
   };
   return copy.filter(el => el !== '');
};
console.log(removeOddOccurence(arr));
ログイン後にコピー

出力

コンソールの出力は-

になります。リーリー

以上がJavaScript の配列から奇数に出現した数値/要素を削除するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート