gpt4 book ai didi

javascript - 简单的双for循环

转载 作者:行者123 更新时间:2023-12-03 06:11:37 26 4
gpt4 key购买 nike

我正在尝试创建一个像这样的数组:

0{
0 - 2015
1 - {thema1,thema2,thema3}
},
1{
0 - 2016
1 - {thema1,thema2,thema3}
}

我使用以下代码行从框架的共享点列表中取出内容:

actualYear = 2016;
actualMonth = 9;
columns= [];

$(document).ready(function(){
for(var year = 2015; year <= actualYear; year++){

var element = [];
element.push(year);


$SP().list("Workload_"+year).view("Alle Elemente",function(data,viewID) {
for (var i=0; i<data.fields.length; i++){ element.push(data.fields[i])};
});
columns.push(element);
}
});

连接很好 - 它需要正确的数据,但我遇到了一些问题,因为上面的代码创建了这样的数组:

0{
0 - 2015
1 - undefined
},
1{
0 - 2016
1 - {thema1,thema2,thema3,thema1,thema2,thema3}
}

它将每个data.fields写入最后一个子数组。我只是不明白为什么会发生这种情况 - 这与循环内的函数有关吗?当然,如果我使用 return ,它会用正确的数据写入第一列子数组 - 但它会中断循环,所以......

我错过了什么?

编辑:

var 元素用于对循环进行分组(年份和主题)元素 var 应如下所示:[2015,{thema1,thema2,thema3}]

列 var 是将所有内容组合在一起的变量并且应该看起来像:[{2015,{thema1,thema2,thema3}},{2016,{thema1,thema2,thema3}}]

我的问题是,主题(主题)将来可能会发生变化,因此对这些数据字段进行硬编码不是一个好主意 - 这就是为什么我将其从列表中删除。

亲切的问候普罗西

最佳答案

尝试下面的代码。

var actualYear = 2016;
var actualMonth = 9;
var columns = [];

$(document).ready(function() {
for (var year = 2015; year <= actualYear; year++) {

var element = [];
element.push(year);

$SP().list("Workload_" + year).view("Alle Elemente", function(data, viewID) {
var arr = []
for (var i = 0; i < data.fields.length; i++) {
arr.push(data.fields[i])
};
element.push(arr);
});
columns.push(element);
}
});

控制台结果: enter image description here

关于javascript - 简单的双for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39290955/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com