【发布时间】:2011-01-25 09:59:35
【问题描述】:
我有一个看起来像这样的对象。
var obj = {
speed: 10,
volume: 14,
aux_deform: 1.8,
energy: 21.5,
aux_energy: 0.2
}
将在运行时添加额外的字段/属性,因此对象可以在任何给定时间包含任意数量的属性。正如您在我的对象示例中看到的,某些属性可以以“aux_”开头。
现在,我想从这个对象创建另一个对象,它只包含以“aux_”开头的属性。
我现在的做法是这样的。
var newObj = [];
for(prop in obj)
{
if (prop.startsWith('aux_'))
{
newObj[prop] = obj[prop];
}
}
现在我有了一个新对象,我可以执行以下操作:
alert(newObj.aux_energy);
这工作正常,但我想知道这是否是正确的方法。对于我想要实现的目标,有没有更简单的方法或更优雅的方法?这种创建对象的方式是否存在任何(安全或技术)问题?
标题中的问题是:新创建的对象实际上是一个以属性为键的关联数组(因为它是这样创建的)还是有什么区别。
【问题讨论】:
-
在 JS 中没有关联数组这样的东西。
标签: javascript json associative-array