То, что вы здесь делаете, это помещает объекты в массив, а не задает какие-либо ключи.Ваш массив выглядит примерно так:
[
{ myKey: "value" },
{ myOtherKey: "value" }
]
Проще говоря, массив не имеет ключей (*), у него есть индексы.Ваши ключи являются частью объекта, который вы поместили в массив, а не самого массива.
То, что вы хотите для своего варианта использования, - это простой объект, где вы можете установить любые ключи, которые вам нравятся.Измените свой код следующим образом:
var itemObject = {};
var fields;
var fieldName;
var fieldValue;
var fieldValueCleaned;
for(var i = 0; i < types.length; i++){
fields = types[i].split("=");
fieldName = fields[0];
fieldValue = decodeURIComponent(fields[1]);
fieldValueCleaned = CleanUp(fieldValue);
itemObject[fieldName] = fieldValueCleaned;
console.log(fieldName +" : "+ fieldValueCleaned);
}
console.log(itemObject.myKey);
*: Технически, массив имеет ключи, так как array в Javascript является типом объектасо специальным синтаксисом.Однако массивы предназначены для работы с ключами, которые являются целочисленными индексами.Поэтому, хотя в массиве можно установить свои собственные ключи, это не имеет большого значения, и я не могу вспомнить многих случаев, когда массив имеет больше смысла, чем простой объект.