Скажем, я хочу, чтобы реализовать эту функцию:Как реализовать универсальную функцию отображения?
function myMapper(data, mapping) { }
С входными существами:
data = { hello : 'hi' , embedded : { prop1 : 'hiiiii' } };
mapping = { hello : 'HELLO', 'embedded.prop1' : 'embedded.propOne' };
Выходом будет:
res = myMapper(data, mapping);
res is { HELLO : 'hi' , embedded : { propOne : 'hiiiii' } };
Чтобы сделать это ясно:
- Составление сопоставления ле свойство: привет -> ПРИВЕТ
- Отображения вложенных свойств, с точкой в качестве разделителя: embedded.prop1 -> embedded.propOne
- Старых свойств удаляются (привет и embedded.prop1)
- Это должно быть общим функция, принимающая любое комплексное отображение
- Не требуется для поддержки переименования контейнеров: embedded.prop1 -> EMBEDDED.prop1 is не.
- Значения свойств остаться, очевидно, то же самое
- Если свойство, указанное в отображении не найден, то оно установлено нулевое значение
- бонусных баллов за reverseMapper, который, принимая то же отображение, делает обратную операцию
Я не могу представить себе использование для такой функции. Он пытается сделать слишком много вещей одновременно и, вероятно, даст вам неожиданные результаты чаще, чем правильные результаты. Несмотря на это, это довольно не по теме для переполнения стека. Вы только что отправили * длинный список требований и попросили нас сделать вашу работу за вас. – meagar
Итак ... вы просите людей реализовать это для вас? Вы спрашиваете, хорошая ли это идея или нет? Вы просите людей ознакомиться и посмотреть, есть ли у этих требований какие-либо проблемы? – ajp15243
Это был бы хороший каталон для начинающих http://www.codewars.com – aemxdp