【发布时间】:2019-04-30 17:07:24
【问题描述】:
我有一个接受以下参数的函数:
set(section, field, pair, component, element, value)
部分、字段、对 > 和 component 只是 Object 中的键。它们是路点,因此我们可以沿着层次结构向下移动。显然 section 是头部,我们的切入点。
element 是目标键,value 是要设置的值。
由于存在不同深度的元素,我想做以下事情:
set('utility', null, null, null, 'exportId', 'banana')
这是一个浅层访问,在内部它会这样做:
dataObj[section][element] = value;
**/ As in
* data: {
utility: {
exportId: 'banana'
}
* }
*/
在其他情况下,当元素在 Object 内部更深时,可能需要执行以下操作:
dataObj[section][field][pair][component][element] = value;
动态定义元素路径的最佳方法是什么,因此我们跳过作为“null”传入的键?
例如:
set('history', 'current', null, null, 'fruit', 'apple')
**/ As in
* data: {
history: {
current: {
fruit: 'apple'
}
}
* }
*/
将在内部构造为:
dataObj[section][field][element] = value;
您可能已经注意到,我们跳过了 [pair][component],因为这些插槽是作为 null(s) 传入的。
【问题讨论】:
-
最好使用数组而不是定义的参数。数组上的简单循环
标签: javascript node.js object data-structures data-modeling