我想展平一个多层对象,反之亦然。 例如:
{
option1:value1,
option2:value2,
option3:{
key1:value31,
key2:value32
},
option4:[value40,value41,value42]
}
相当于:
{
option1:value1,
option2:value2,
"option3.key1":value31,
"option3.key2":value32,
"option4.0":value40,
"option4.1":value41,
"option4.2":value42
}
这是针对小对象的,扁平化表达式的目的是方便表单中的数据收集以及与默认选项的合并。例如,我可以有这样的表单元素:
<input name="option4.0" value="value40"/>
这是标准方法,还是有更好的方法?是否有库已经这样做了?
最佳答案
该格式 ({ option4.2: value42 }) 不起作用(因为键中的 . 将被解析为点运算符)。相反,您需要引用该键:
{ 'option4.2': value42 }
但是,这是非常不标准的。通常不需要展平对象 - 如果您想将这样的对象提交到服务器,您可以使用 JSON 来序列化它而不展平:
var stringForServer = JSON.stringify(normalObject);
如果您正在寻找一个库来操作对象和数组等,下划线可能是您最好的选择:
干杯!
关于javascript - 展平/展开对象 : am I on the right tracks?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14613681/