0

この問題を解決するための助けを求めます。特殊なケースしか扱っていません。入力: 任意の JSON オブジェクト。プロトタイプオブジェクト。出力: 投影されたオブジェクト。射影されたオブジェクト構造は、ソース オブジェクトとプロトタイプ オブジェクト構造の共通部分でなければなりません。投影されたオブジェクトのプロパティの値は、ソース オブジェクトのそれぞれのプロパティの値と同じでなければなりません。例えば:

const src = {
    prop11: {
        prop21: 21,
        prop22: {
            prop31: 31,
            prop32: 32
        }
    },
    prop12: 12
};

const proto = {
    prop11: {
        prop22: null
    }
};

私ができたこの部分:

const res = (src, proto) => {
    return Object.keys(proto).reduce((a, e) => ({
        ...a, [e]: src[e] ? (proto[e] ? res(src[e], proto[e]) : src[e]) : src[e]
    }), {});
}
console.log(res(src, proto));

次の結果が得られます。

{
  "prop11": {
    "prop22": {
      "prop31": 31,
      "prop32": 32
    }
  }
}

しかし、プロトが異なる場合、たとえば:

const proto = {
    prop11: {prop21: 1, prop23: null}
};

このソリューションは間違った結果をもたらします。このタスクにはすでに数日を費やしています。どんな助けにも感謝します!

4

0 に答える 0