次のような数値の配列があるとします。
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 サイトの他の関連記事を参照してください。