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

配列の共通部分を検索し、JavaScriptで繰り返し要素を含める


問題

arr1とarr2の2つの配列をそれぞれ1番目と2番目の引数として受け取るJavaScript関数を作成する必要があります。

関数は、配列の共通部分(両方の共通要素)を検出する必要があります。両方の配列に2回出現する要素がある場合は、それらを結果配列にも2回含める必要があります。

たとえば、関数への入力が-

の場合
const arr1 = [2, 7, 4, 6, 7, 4];
const arr2 = [7, 1, 9, 7, 4, 5];

その場合、出力は-

になります。
const output= [7, 7, 4];

このためのコードは-

になります
const arr1 = [2, 7, 4, 6, 7, 4];
const arr2 = [7, 1, 9, 7, 4, 5];
const intersect = (arr1 = [], arr2 = []) => {
   const map = {};
   arr1.forEach(a => {
      map[a] = map[a] ? map[a] + 1 : 1;
   })
   const result = [];
   for(let key of arr2) {
      if(key in map && map[key] > 0) {
         result.push(key);
         map[key]--;
      }
   }
   return result;
};
console.log(intersect(arr1, arr2));

コードの説明:

私たちが取ったステップは-

  • 最初の配列(arr1)をループして、各番号の出現を見つけます。その中に。

  • 2番目の配列(arr12)をループして、arr2の要素がマップされたarr1に存在するかどうかを確認します。

  • 存在する場合は、マップされたnum1の値を減らし、結果配列の要素をプッシュします。

出力

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

になります
[7, 7, 4]

  1. JavaScriptでreduce()を使用して配列要素の積を検索する

    問題 配列arrを取り込むJavaScript関数を作成する必要があります。この関数は、配列のすべての要素の積を見つけて返す必要があります。 例 以下はコードです- const arr = [3, 1, 4, 1, 2, -2, -1]; const produceElements = (arr = []) => {    const res = arr.reduce((acc, val) => {       acc = acc * val;       return acc;   &n

  2. JavaScriptで配列内のすべてのピークとその位置を見つける

    ビルドアップ JavaScriptに次の配列があるとします- const arr = [4, 3, 4, 7, 5, 2, 3, 4, 3, 2, 3, 4]; この配列の点をy軸にプロットし、隣接する各点をx軸上で単位距離だけ離すと、グラフは次のようになります- このグラフは、この配列のインデックス3と7に、それぞれ値7と4の2つの極大値(ピーク)が存在することを明確に示しています。 問題 整数の配列arrを最初で唯一の引数として受け取るJavaScript関数を作成する必要があります。 この関数は、最大値と位置の2つのプロパティを含むオブジェクトを返すことになっています。