已更新
我正在尝试通过调用回调函数并使用其他数组的值来构建数组。 但是,我得到的价值很少,我无法理解为什么。
结构如下:
var sortedData = [];
arrayProvidingTheValues.forEach(pushEl,sortedData);
并且回调函数是
function pushEl(element,index) {
console.log("pushEl called");
this[index] = element;
}
输入:
saisineArray = {obj1, obj2 obj3, obj4, obj5, obj6};
contratArray = {obj21, obj22 obj23, obj24, obj25, obj26};
intervalNb = 5;
预期产出
sortedData = {obj1, obj2 obj3, obj4, obj5, obj6,obj21, obj22 obj23, obj24, obj25,obj6,obj26};
PS:这是详细的代码,可以更详细地向您展示。
for (var k = 0; k < intervalNb; k++) {
if (k * interval >= saisineArray.length) {
} else if ((k + 1) * interval >= saisineArray.length) {
saisineArray.slice(k * interval, saisineArray.length).forEach(pushEl, sortedData);
} else {
saisineArray.slice(k * interval, (k + 1) * interval).forEach(pushEl, sortedData);
}
if (k * interval >= contratArray.length) {
} else if ((k + 1) * interval >= contratArray.length) {
contratArray.slice(k * interval, contratArray.length).forEach(pushEl, sortedData);
} else {
contratArray.slice(k * interval, (k + 1) * interval).forEach(pushEl, sortedData);
}
}
答案 0 :(得分:2)
而不是this[index] = element;
尝试this.push(element);
您现在正在做的是每次执行forEach(pushEl)
时,您将从索引0开始覆盖sortedData
数组。