Любые советы по тому, как я могу реорганизовать свою функцию с помощью reduce
, так как я не должен использовать map
здесь?Использование уменьшения fnt вместо карты
2
A
ответ
3
Попробуйте это:
function serializeParams (object) {
return Object.keys(object)
.reduce((query, key) =>
Array.isArray(object[key])
? query.concat(object[key].map(value => `${key}=${encodeURIComponent(value)}`))
: query.concat(`${key}=${encodeURIComponent(object[key])}`)
, [])
.join('&');
}
Или без строки шаблона:
function serializeParams (object) {
return Object.keys(object)
.reduce((query, key) =>
Array.isArray(object[key])
? query.concat(object[key].map(value => key + '=' + encodeURIComponent(value)))
: query.concat(key + '=' + encodeURIComponent(object[key]))
, [])
.join('&');
}
+0
точно! Спасибо – sisimh
2
Использование map
вместо reduce
уместно здесь, вы только должны сопоставить массив массивов, которые вы можете concat
перед тем join
ING.
function serializeParams(obj) {
return Array.protoype.concat.apply([], keys(obj).map(key => {
let value = obj[key];
return Array.isArray(value)
? value.map(v => key +"=" + encodeURIComponent(v))
: [key + "=" + encodeURIComponent(value)];
})).join("&");
}
Поскольку вы помечено это с Ramda, вы можете составить map
с concat
или использовать chain
сразу.
Смежные вопросы
- 1. Использование уменьшения карты в javascript
- 2. Использование карты/уменьшения для вычисления итогов
- 3. Использование потоковой передачи Hadoop с perl для уменьшения карты
- 4. Использование функции уменьшения дублирования
- 5. Файл шрифта FNT в C#
- 6. Использование друга для уменьшения детализации
- 7. Создание карты из нескольких наборов с помощью карты/уменьшения
- 8. Предпочтительный метод уменьшения/фильтрации карты в Dart?
- 9. Сбой Hadoop в середине отображения карты/уменьшения
- 10. Получение объектов с CouchDB после карты/уменьшения
- 11. Форматирование набора данных с использованием карты/уменьшения
- 12. Использование выбора в блоке уменьшения
- 13. Использование уменьшения размерности на матрице
- 14. ipa размер увеличивается вместо уменьшения Xcode 7.2
- 15. Как загрузить шрифты fnt в приложении ios
- 16. Карты Google показывают серый экран вместо карты
- 17. Решение конфликта уменьшения/уменьшения
- 18. Устранение конфликтов уменьшения/уменьшения
- 19. Использование карты, карты не меняются?
- 20. Использование графической карты (DirectX, OpenGL) вместо функций GDI или GR32
- 21. Использование CLGeocoder вместо частного API в виде карты
- 22. Использование графической карты вместо GDI + для манипуляции изображения
- 23. Использование карты в схеме
- 24. Использование Array.map вместо array.map
- 25. Использование переменной для уменьшения рабочего листа
- 26. Использование .closest на img для уменьшения изображения
- 27. Использование линейного дискриминантного анализа для уменьшения размера
- 28. Использование метаморфического кода для уменьшения шаблона
- 29. Использование одинарного увеличения/уменьшения в функции PRINTF
- 30. Использование функции уменьшения для рекурсивного слияния
И почему бы вам просто не использовать карту для сопоставления массива, реальный вопрос в том, почему вы не возвращаете этот массив, вместо того, чтобы переходить к новому массиву внутри функции 'map' – adeneo
Почему редактирование для удаления оригинальный код? Без него вопрос не одинок. –