首页 > 解决方案 > 从 JS 对象创建的数组在登录控制台时显示圆形对象

问题描述

我正在寻找从多个输入创建的对象数组。每次用户按下Add to Array按钮时,它都应该向数组中添加一个新对象。但是,当我将数组记录到控制台时,它会显示循环引用。

我的测试代码如下:

var selected = [];

var name = $(".name").val();
var id = $(".id").val();
var data = $(".data").val();

var data = {
  name : $(".name").val(),
  id : $(".id").val(),
  data: $(".data").val()
}
$("button").click(function(){    
    selected.push(data);
    console.log(selected);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<input type="text" class="name" value='Some name' />
<input type="text" class="data" value='some data' />
<input type="text" class="id" value='12' />
<p id="demo"></p>
<button>Add to array</button>
我想要一个包含我添加的所有值的普通数组,以备后用。我不确定循环引用是我应该得到的。

这是维护对象集合的错误方法,稍后将发布到服务器?

标签: javascriptarraysobjectcircular-reference

解决方案


您只需要在单击时在函数中声明 var 数据,如下例所示:

var selected = [];

$("button").click(function() {
  var data = {
    name: $(".name").val(),
    id: $(".id").val(),
    data: $(".data").val()
  }
  selected.push(data);
  console.log(selected);
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<input type="text" class="name" value='Some name' />
<input type="text" class="data" value='some data' />
<input type="text" class="id" value='12' />
<p id="demo"></p>
<button>Add to array</button>


推荐阅读