使用javascript方括号表示法重新排列对象中的值

时间:2014-06-27 11:12:11

标签: javascript

我有这个对象:

servicesSelected: {
  spw: {
    sku: "XYZ"
  }
}

我需要让它看起来像这样:

servicesSelected: {
  XYZ: {
    sku: "XYZ"
  }
}

到目前为止我做了什么:

myVar = servicesSelected.spw.sku //stores "XYZ" as myVar

这是我无法得到它的地方。以下不起作用。我不能使用常规的点符号,因为它不支持插入变量,对吧?

newObject = ["servicesSelected"][myVar]sku[myVar]

2 个答案:

答案 0 :(得分:0)

试试这个:

var newObject = new Object();
newObject["servicesSelected"][myVar]["sku"] = myVar;

Javascript支持使用双方括号进行对象属性查询,以及动态生成属性。在这种情况下,您可以使用newObject.servicesSelected[myVar].sku进行查询。

答案 1 :(得分:0)

仅供参考,这是我最终使用的方法:

myVar = servicesSelected.spw.sku // myVar is assigned "XYZ"

然后......

servicesSelected[myVar] = servicesSelected["spw"];

这创建了:

servicesSelected: {
  spw: {
    sku: "XYZ"
  },
  XYZ: {
    sku: "XYZ"
  }
}

下一步:

delete servicesSelected["spw"];

创建:

servicesSelected: {
  XYZ: {
    sku: "XYZ"
  }
}