我第一次在这里发帖提问,如果我遗漏了任何需要的信息,请告诉我。已更新,以包含所需的输出。
我正在开发谷歌应用程序脚本(基本上是javascript),我正在尝试从对象数组中提取对象并创建一个新的对象数组。我正在使用getRowData的google基本函数(可以在https://developers.google.com/apps-script/guides/sheets找到这些函数)来创建我的初始对象数组。这给了我一行类似的数据(如果有人想知道,有信息削减的话,JIRA导出):
{summary=Internal - Fix PuppetFile Jenkins Jobs, progress=1.0, issueType=Story, resolution=Done, timeSpent=3600.0, key=XXXXX-646, watchers=0.0, remainingEstimate=0.0, numberOfComments=1.0, status=Resolved, assignee=XXXXXXXX}
当我运行我的功能时:
for (var i = 0; i < issueList.length; i++){
rankList[i] = [issueList[i].summary,issueList[i].storyPoints,issueList[i].epicLink,issueList[i].fixVersions];
}
我明白了:
[Internal - Fix PuppetFile Jenkins Jobs, 3.0, null, null]
但我想要的是:
{summary=Internal - Fix PuppetFile Jenkins Jobs, storyPoints=1.0, epicLink=StoryName, fixVersions=Done}
我没有获得该值的关键,我不明白对象的构造方式是否足以让它转移。我看了一些操作键/值对的例子但是当我自己尝试它时,我得到了一堆未定义的。感谢您提供的任何帮助。
答案 0 :(得分:0)
你想要的可能是这样的:
rankList = [];
for (var i = 0; i < issueList.length; i++) {
issue = issueList[i];
rankList.push({
summary: issue.summary,
storyPoints: issue.progress,
epicLink: issue.IDONTKNOW,
fixVersions: issue.resolution
});
}
我不知道epicLink
中的字段是什么,因为从你的例子中并不明显。而我只是猜测其他领域。但这是一般结构,你只需要做出所有正确的对应关系。
答案 1 :(得分:-1)
使用jquery而不是同时获取键和值更容易:
var myarray = [];
$.each(issueList,function(key,value){
console.log(key);
console.log(value);
value.key = key;
myarray.push(value);
});
console.log(myarray);