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

JavaScriptで任意の数の配列間で共通のアイテムを見つける


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

const obj = {
   a: [ 15, 23, 36, 49, 104, 211 ],
   b: [ 9, 12, 23 ],
   c: [ 11, 17, 18, 23, 38 ],
   d: [ 13, 21, 23, 27, 40, 85]
};

オブジェクト内の要素の数は固定されておらず、任意の数の要素を持つことができます。

そのようなオブジェクトを1つ取り込んで、各メンバー配列に共通の要素の配列を返すJavaScript関数を作成する必要があります。

したがって、上記のオブジェクトの場合、出力は-

になります。
const output = [23];

このためのコードは-

になります
const obj = {
   a: [ 15, 23, 36, 49, 104, 211 ],
   b: [ 9, 12, 23 ],
   c: [ 11, 17, 18, 23, 38 ],
   d: [ 13, 21, 23, 27, 40, 85]
};
const commonBetweenTwo = (arr1, arr2) => {
   const res = [];
   for(let i = 0; i < arr1.length; i++){
      if(arr2.includes(arr1[i])){
         res.push(arr1[i]);
      };
   };
   return res;
};
const commonBetweenMany = (obj = {}) => {
   const keys = Object.keys(obj);
   let res = obj[keys[0]];
   for(let i = 1; i < keys.length - 1; i++){
      res = commonBetweenTwo(res, obj[keys[i]]);
      if(!res.length){
         return [];
      };
   };
   return res;
};
console.log(commonBetweenMany(obj));

出力

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

になります
[23]

  1. JavaScriptで2つの配列から最大数を見つける

    問題 1番目と2番目の引数として2つの数値arr1とarr2を表す1桁の数値の2つの配列を受け取るJavaScript関数を作成する必要があります。関数の3番目の引数は数値になります num (num <= length of arr1 + length of arr2) この関数は、長さnumの1桁の数値の新しい配列を返す必要があります。これは、それ自体が数値を表します。また、この数は、両方の配列の要素を使用して作成できる最大数である必要があります。唯一の条件は、同じ配列の要素の相対的な順序を維持する必要があることです。 たとえば、関数への入力が-の場合 const arr1 =

  2. JavaScriptでリテラルの2つの配列の間で欠落している数を見つける

    問題 arr1とarr2の2つの配列を受け取るJavaScript関数を作成する必要があります。 arr2は、arr1のシャッフルされた複製であり、要素が1つだけ欠落しています。 関数はその1つの要素を見つけて返す必要があります。 例 以下はコードです- const arr1 = [6, 1, 3, 6, 8, 2]; const arr2 = [3, 6, 6, 1, 2]; const findMissing = (arr1 = [], arr2 = []) => {    const obj = {};    for (let i =