首页 > 解决方案 > 使用 Vanilla JavaScript 合并对象

问题描述

我一直在研究一个事件处理程序来将输入与状态同步,并提出了这个解决方案:

https://gist.github.com/jadeallencook/678869f988bd65378d819496c4343e78

处理程序使用字符串将值推送到端点并将结果与​​当前状态合并,但我必须使用 lodash 来完成它,无论如何在 vanilla 中可以做到吗?

标签: javascriptreactjs

解决方案


Areduce将产生一个通用的解决方案:

const path = 'foo-bar-num';
const paths = path.split('-');
const object = {};
const value = 'Woo hoo!';

paths.reduce(([object, value], path, idx) => {
  object[path] = idx === paths.length - 1 ? value : {};
  return [object[path], value];
}, [object, value]);

console.log(object)


推荐阅读