将对象推送到数组javascript错误stringify

时间:2018-03-20 10:26:37

标签: javascript angularjs

TypeError:将循环结构转换为JSON     在JSON.stringify()

var userInfo = currentUser.children;
      if(currentUser.type ==1){
        userInfo.push(currentUser);
        //console.log(typeof userInfo);
      }

它产生了我的错误将循环结构转换为JSON。我怎么能来这个请指导。

2 个答案:

答案 0 :(得分:0)

你的问题是由于这样的:

-T 1C

var oscar = { name: 'oscar' } var john = { name: 'john', friend: oscar }; oscar.friend = john; console.log(JSON.stringify(oscar));导航对象定义的树,直到完成为止。这里的问题是JSON.stringify有一个引用oscar的属性,然后john引用john,所以函数会进入无限循环:

oscar

等等。转换为JSON时始终避免使用循环引用。

答案 1 :(得分:0)

你无法推动" currentUser" to" userInfo",因为userInfo本身是当前用户的属性,所以您试图将对象引用到自身。只需将要推送的数据推送到数组中即可。

var userInfo = [];
if(currentUser.type ==1){
  userInfo.push(currentUser);
  //console.log(typeof userInfo);
}