配列の共通部分を検索し、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]
-
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
-
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つのプロパティを含むオブジェクトを返すことになっています。