访问数组成员 javascript [zapier]
Access member of an array javascript [zapier]
我正在尝试访问数组中的键及其值。您可以从下面的代码中看到,我将 fieldName 和 fieldValueCleaned 放入数组中 - 这是在对传递的信息进行一些清理之后。
我知道其中一个 fieldNames 是 myKey,它的值被推入数组(我可以从 console.log(fieldName +" : "+ fieldValueCleaned); 中看到这一点)
但是,当我尝试直接访问 itemArray.myKey 中的值时,我得到 'undefined'。
我哪里错了
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);
}
提前致谢
您在这里所做的是将对象推入数组,而不是设置任何键。您的数组最终看起来像这样:
[
{ 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);
*:从技术上讲,数组确实有键,因为Javascript中的数组是一种对象特殊语法。但是,数组旨在与作为整数索引的键一起使用。因此,虽然可以在数组上设置您自己的键,但它没有什么用处,而且我想不出有多少用例可以让数组比普通对象更有意义。
我正在尝试访问数组中的键及其值。您可以从下面的代码中看到,我将 fieldName 和 fieldValueCleaned 放入数组中 - 这是在对传递的信息进行一些清理之后。 我知道其中一个 fieldNames 是 myKey,它的值被推入数组(我可以从 console.log(fieldName +" : "+ fieldValueCleaned); 中看到这一点) 但是,当我尝试直接访问 itemArray.myKey 中的值时,我得到 'undefined'。 我哪里错了
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);
}
提前致谢
您在这里所做的是将对象推入数组,而不是设置任何键。您的数组最终看起来像这样:
[
{ 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);
*:从技术上讲,数组确实有键,因为Javascript中的数组是一种对象特殊语法。但是,数组旨在与作为整数索引的键一起使用。因此,虽然可以在数组上设置您自己的键,但它没有什么用处,而且我想不出有多少用例可以让数组比普通对象更有意义。