Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/423.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将对象间歇推送到阵列_Javascript - Fatal编程技术网

Javascript 将对象间歇推送到阵列

Javascript 将对象间歇推送到阵列,javascript,Javascript,我有一个简单的代码块,它不能按预期工作。代码解析一个对象数组,并使用前一个数组中的累积大小创建第二个数组。该代码在某些数据集上运行良好,但在其他数据集上运行失败。这是非常奇怪的,因为所有数据集都是使用相同的工具生成的,并且在空白处没有差异 程序失败的地方是将新创建的对象推送到数组中。在某些数据集上,它推送一个空对象,而在其他数据集上,它正确地推送它。失败的控制台日志示例如下: html:461{name:“Chr15”,大小:6397009} html:467(24)[{…},{…},{…},{

我有一个简单的代码块,它不能按预期工作。代码解析一个对象数组,并使用前一个数组中的累积大小创建第二个数组。该代码在某些数据集上运行良好,但在其他数据集上运行失败。这是非常奇怪的,因为所有数据集都是使用相同的工具生成的,并且在空白处没有差异

程序失败的地方是将新创建的对象推送到数组中。在某些数据集上,它推送一个空对象,而在其他数据集上,它正确地推送它。失败的控制台日志示例如下:

html:461{name:“Chr15”,大小:6397009}

html:467(24)[{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…}长度:0

而功能代码的日志: 461{名称:“Chr4”,尺寸:28450051}

467(35)[{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…},{…}

var sizetracker=[];

Blocks.forEach(function (arrayItem) {
    var tempname=arrayItem.QueChr;
    var tempsize=parseInt(arrayItem.RefEnd)-parseInt(arrayItem.RefStart);
    var temptest=false;

    sizetracker.forEach(function (newarrayItem) {
        if(newarrayItem.name==tempname){
            newarrayItem.size=newarrayItem.size+tempsize;
            temptest=true;
        }
    });

    if (temptest==false) {
        var datapoint = {};
        datapoint.name=tempname;
        datapoint.size=tempsize;
        console.log(datapoint);
        sizetracker.push(datapoint);        
    }
});

console.log(sizetracker);

我现在不知道。输入没有明显的差别。

问题在于整数和字符串。在将值添加到对象之前,我将其转换为字符串。然后推动起了作用。我不知道为什么这样做有效,但我不是在研究这个问题。

你能制作一个功能性JavaScript/HTML/CSS片段(Ctrl-M)来演示两个示例对象,一个失败,一个成功吗?
.forEach()
调用的迭代限制在迭代开始时确定。您添加到回调中的数组中的元素将不会是“循环”的一部分。我不确定如果没有适当的解决方案,我们能否解决这个问题-代码在我看来还行,但我不知道
块中的任何内容的预期值是什么。