JavaScript中如何将生成结构的Children属性从数组改为对象
解决方法
你当前代码中Children和padStyle属性初始值都是数组类型,序列化/控制台打印时才会显示[Array],直接修改对应属性的初始值为对象即可匹配期望输出。
修改后的完整代码如下:
const placeholder = (index, isRootDirectory) => { const create = { id: index, title: null, location: index, isRootDirectory, // 从数组格式改为直接对象格式 padStyle: { icon: null, color: null, }, UUID: null, action: null, // 从空数组改为空对象 Children: {}, }; return create; }; const createLayout = () => { let root = { info: "Custom Layout", // 根节点的Children仍为数组存多个子节点,和期望输出保持一致 Children: [], }; for (let i = 0; i < 2; i++) { root.Children.push(placeholder(i, true)); } console.log(JSON.stringify(root)); };
如果后续你需要给单个节点存储多个子节点,也可以在Children对象中用键值对存储,比如用子节点id作为key,相比数组可以更快通过id定位对应子节点。
内容的提问来源于stack exchange,提问作者Jerry seigle
相关产品推荐
相关产品推荐

