Доступ к элементу массива javascript [zapier] - PullRequest
0 голосов
/ 18 марта 2019

Я пытаюсь получить доступ к ключу и его значению в массиве.Из приведенного ниже кода вы можете увидеть, что я помещаю в массив fieldName и fieldValueCleaned - это после некоторой очистки передаваемой информации.Я знаю, что одним из fieldNames является myKey This и его значение помещаются в массив (я могу видеть это из console.log (fieldName + ":" + fieldValueCleaned);) Однако, когда я пытаюсь получить доступ к значению напрямуюкак в itemArray.myKey, я получаю «неопределенный».Куда я иду не так

var itemArray = new Array();
var fields = new Array();
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);
  itemArray.push({[fieldName]: fieldValueCleaned}); 
console.log(fieldName +" : "+ fieldValueCleaned);
  console.log(itemArray.myKey);
}

Заранее спасибо

1 Ответ

0 голосов
/ 18 марта 2019

То, что вы здесь делаете, это помещает объекты в массив, а не задает какие-либо ключи.Ваш массив выглядит примерно так:

[
  { 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 является типом объектасо специальным синтаксисом.Однако массивы предназначены для работы с ключами, которые являются целочисленными индексами.Поэтому, хотя в массиве можно установить свои собственные ключи, это не имеет большого значения, и я не могу вспомнить многих случаев, когда массив имеет больше смысла, чем простой объект.

...