Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript对象从PascalCase属性克隆到camelCase属性(在JavaScript中)?_Javascript - Fatal编程技术网

如何将JavaScript对象从PascalCase属性克隆到camelCase属性(在JavaScript中)?

如何将JavaScript对象从PascalCase属性克隆到camelCase属性(在JavaScript中)?,javascript,Javascript,当我序列化ASP.NET MVC表单时,我得到以下结果: { DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6", ... } 但是我想要这个,这样它就符合JS编码惯例: { destinationId: "e96dd00a-b042-41f7-bd59-f369904737b6", ... } 如何将对象和每个属性的第一个字符小写?简单的方法是对对象进行迭代: var newObj = {}; for (var p i

当我序列化ASP.NET MVC表单时,我得到以下结果:

{
  DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6",
  ...
}
但是我想要这个,这样它就符合JS编码惯例:

{
  destinationId: "e96dd00a-b042-41f7-bd59-f369904737b6",
  ...
}

如何将对象和每个属性的第一个字符小写?

简单的方法是对对象进行迭代:

var newObj = {};
for (var p in o) {
    newObj[p.substring(0,1).toLowerCase()+p.substring(1)] = o[p];
}

还必须检查hasOwnProperty,并删除以前的属性

var object = { DestinationId: "e96dd00a-b042-41f7-bd59-f369904737b6" }
for ( var prop in object ) {
  if ( object.hasOwnProperty( prop ) ) {
    object[ prop.substring(0,1).toLowerCase() + prop.substring(1) ] = object[ prop ];
    delete object[ prop ];
  }
}

将这些东西当作字符串并使用Reg exps power不是更好吗


JSON.parse(
stringify(z).replace(
/(\“[^”]([^”]*\”\:)/g,
函数(all,head,tail){返回head.toLowerCase()+tail;}
)
)

可能是更优雅的解决方案-在转换为JS对象之前,用regexp替换JSON字符串中的内容。为什么要使用hasOwnProperty进行检查?您的Object.prototype是否具有其他功能?如果是这样的话,那就没有好处了。您必须定义自己的构造函数。实际上,如果第一个字符串来自后端,则不需要对其进行字符串化。