我正在尝试创建一个这样的数组:
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}}]
我的问题是,主题(thema's)将来可能会发生变化,因此对这些数据进行硬编码并不是一个好主意。这就是为什么我会把它从列表中删除。
亲切的问候 PROXI答案 0 :(得分:1)
尝试以下代码。
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);
}
});