当我将JavaScript数组的字段推送到另一个字段时,该字段也会被推送到根数组

时间:2016-06-23 13:51:59

标签: javascript arrays web

我有以下代码:

var oldArr = { "filed1" : "abcde", "filed2" : "fghij", "anArray" : [["aaa1","bbb1"],["aaa2","bbb2"],["aaa3","bbb3"]]};
var newArr = oldArr;
var isFirst = false;

               for(var i = 0; i < oldArr.anArray.length; i++){
                    var indexA = oldArr.anArray[i].indexOf("aaa1");
                    var indexB = oldArr.anArray[i].indexOf("bbb1");

                    if(indexA > -1 && indexB > -1){
                        if(i == 0){
                            isFirst = true;
                        }
                    }
                    else{
                        newArr.anArray.push(oldArr.anArrray[i]);
                    }
                }

每当我向newArr.anArray添加一个字段时,它也会将字段添加到oldArr.anArray

我的代码是错误的还是newArr和oldArr之间的依赖?

2 个答案:

答案 0 :(得分:0)

你可以这样:

var newArr = JSON.parse(JSON.stringify(oldArr));

如上所述here(如果对象不包含函数)

答案 1 :(得分:0)

我解决了这个问题,因为我对两个对象都使用了构造函数。 所以这些对象之间没有依赖关系。