У меня есть объект, который выглядит примерно так.
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);
Это работает нормально, ноМне интересно, если это правильный подход.Есть ли какой-нибудь более простой способ или более элегантный способ достижения того, чего я пытаюсь достичь?Есть ли какие-либо (с точки зрения безопасности или технические) проблемы / проблемы с этим способом создания объектов?
И вопрос из заголовка: действительно ли вновь созданный объект является ассоциативным массивом со свойствами в качестве ключей (поскольку он создан таким образом) или есть какая-либо разница.