【问题标题】:Javascript - Append a string to keys of an object including a dot characterJavascript - 将字符串附加到包含点字符的对象的键
【发布时间】:2017-03-10 08:33:34
【问题描述】:

我有以下javacript object

Object {description: "This is a description."}

我使用 Angular 的 $http.get 将其发送到后端,但我需要在使用 . 发送之前将字符串附加到密钥

{bd.description: "This is a description."}

这可能吗?到目前为止,我只能使用 . 手动创建 JSON 它希望避免创建 JSON 的模板并在以后填充它,因为 JSON 的属性数量是可变的。

谢谢!

编辑:它不是嵌套对象。

【问题讨论】:

  • 当然可以,如果您将问题修改为创建具有特殊字符的对象键。
  • 你真的想要一个属性为bd.description的对象,还是应该是一个属性bd,即另一个对象,它的属性为description?
  • @JamesThorpe 我需要附加它,它不是嵌套对象(我正在尝试将它与数据库查询键匹配,以使其通用)。
  • 您不能将对象键从 x 更改为 x.x。但是,您可以使用所述键名创建一个新的对象键/值对。

标签: javascript angularjs json object


【解决方案1】:

如果你愿意,你可以这样做:

var myObject = { description: "this is stuff" }
myObject['d.description'] = myObject.description
delete myObject.description
console.log(myObject) // { "d.description": "this is stuff" }

【讨论】:

    【解决方案2】:

    您可以循环所有对象键,然后将值分配给具有这样修改键的新对象

    var source = { description: "..."}
    // create empty object to hold new properties 
    var destination = {}
    for(var key in source) {
        if(source.hasOwnProperty(key)) {
            // assign property to new object with modified key
            destination["bd." + key] = source[key];
        }
    }
    

    【讨论】:

      【解决方案3】:

      您需要创建一个新对象,例如:

      var bd = {
         description: yourobject.description
      };
      

      并返回数据库;

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-01-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-01-07
        • 1970-01-01
        • 1970-01-01
        • 2012-10-11
        相关资源
        最近更新 更多