Questions tagged «spread-syntax»

30
如何深层合并而不是浅层合并?
Object.assign和Object Spread都仅进行浅合并。 问题的一个示例: // No object nesting const x = { a: 1 } const y = { b: 1 } const z = { ...x, ...y } // { a: 1, b: 1 } 输出是您期望的。但是,如果我尝试这样做: // Object nesting const x = { a: { a: 1 } } const …

11
使用传播语法在ES6中进行深层复制
我正在尝试为我的Redux项目创建一个深层复制映射方法,该方法将处理对象而不是数组。我了解到,在Redux中,每个状态都不应更改以前的状态。 export const mapCopy = (object, callback) => { return Object.keys(object).reduce(function (output, key) { output[key] = callback.call(this, {...object[key]}); return output; }, {}); } 有用: return mapCopy(state, e => { if (e.id === action.id) { e.title = 'new item'; } return e; }) 但是,它不会深度复制内部项目,因此我需要将其调整为: export const mapCopy = (object, callback) => …

3
状态表示为对象数组vs ID键入的对象
在“ 设计状态形状 ”一章中,文档建议将状态保留在以ID为键的对象中: 将每个实体保留在以ID作为键存储的对象中,并使用ID从其他实体或列表中引用它。 他们继续陈述 将应用程序的状态视为数据库。 我正在处理状态列表中的过滤器列表,其中一些将处于打开状态(它们显示在弹出窗口中),或者具有选定的选项。当我阅读“将应用程序的状态视为数据库的情况”时,我想到了将其视为JSON响应,因为它将从API(本身由数据库支持)返回。 所以我在想 [{ id: '1', name: 'View', open: false, options: ['10', '11', '12', '13'], selectedOption: ['10'], parent: null, }, { id: '10', name: 'Time & Fees', open: false, options: ['20', '21', '22', '23', '24'], selectedOption: null, parent: '1', }] 但是,文档建议的格式更像 { 1: { name: …


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.