Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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_Node.js - Fatal编程技术网

Javascript 对象数组显示重复的内容

Javascript 对象数组显示重复的内容,javascript,node.js,Javascript,Node.js,使用请求的NodeJs代码如下: var objIdArr = [obj1, obj2, obj3]; var index = 0; var result = {}; var resultArr = []; (function deleteRecur(){ if (index > objIdArr.length-1) { //we are done iterating console.log(resultArr); //faulty resulte

使用请求的NodeJs代码如下:

var objIdArr    = [obj1, obj2, obj3];
var index = 0;
var result = {};
var resultArr = [];

(function deleteRecur(){

    if (index > objIdArr.length-1) {
    //we are done iterating
        console.log(resultArr); //faulty resulte

    } else
        {       
      request(        //nodejs request module          
          {   
             uri: base_uri + '/' + objIdArr[index],
             method: 'DELETE',
             headers: headers
         },   

           function(error, response, body) {

                var arg = (transMap.get(objType)).res[0];
                if (!error && response.statusCode == 200) {
                    result['vmid'] = objIdArr[index];
                    result["result"] = "Success";
                } else{
                    result['vmid'] = objIdArr[index];
                    result["result"] = "failure";
                    result["detail"] = error;
                } 
                resultArr[index] = result;
                index++;
                deleteRecur();
        });
    }

}());
预期结果r [{vmid:'obj1',结果:'OK'},{vmid:'obj2',结果:'OK'},{vmid:'obj3',结果:'OK'}]

但是console.log打印 [{vmid:'obj3',结果:'OK'},{vmid:'obj3',结果:'OK'},{vmid:'obj3',结果:'OK'}]

似乎每当我在代码的其他地方更改结果时,它也会影响数组resultar。这怎么可能?javascript不应该是按值传递的吗


如何解决此问题?

创建
var result={}在使用它的函数中,并将其推入
resultar
。目前,每次都会覆盖数据(数组多次包含同一对象,而不是多个对象)。

我想不出更好的问题标题。请随意编辑。嘿,Wain,你能告诉我,为什么小提琴中的第一个对象已经有了数组的元素数,索引为0-3?@dollarVar我不明白你的问题是的,我想是的……嗯,看看图片。在第一个
控制台中.log
ed对象与最后一个对象基本相同,并且第一个对象中的索引在三个之前已经为零了…:可以理解吗D