forEach数组javascript不完整

时间:2014-10-10 12:46:03

标签: javascript

已更新

我正在尝试通过调用回调函数并使用其他数组的值来构建数组。 但是,我得到的价值很少,我无法理解为什么。

结构如下:

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);
    }
}

1 个答案:

答案 0 :(得分:2)

而不是this[index] = element;尝试this.push(element);

您现在正在做的是每次执行forEach(pushEl)时,您将从索引0开始覆盖sortedData数组。