所有,我试图将对象推入一个数组,并console.logging新数组,看看它看起来像,它看起来好像它不能正常工作。你能告诉我我做错了吗?将对象推入数组
<% var testObjArray = [] %>
<% var testObj = {} %>
<% currentUser.shares.forEach(function(share){ %>
<% if(!share || share.length < 1){ %>
<!--DO NOTHING-->
<% } else { %>
<% if(currentUser.id == share.yes_owner.id){ %>
<% testObj.price = share.event.yes_purchase_price %>
<% testObj.yes_or_no = "YES" %>
<% } else { %>
<% testObj.price = share.event.no_purchase_price %>
<% testObj.yes_or_no = "No" %>
<% }%>
<% testObj.quantity = 1 %>
<% testObj.eventId = share.event.id %>
<% testObj.name = share.event.name %>
<% testObjArray.push(testObj) %>
<% console.log(testObj) %>
<% }%>
<% }) %>
<% console.log("THIS IS THE NEW OBJARRAY: " + testObjArray) %>
我想最终的结果是,并期待它是..
[{ price: undefined,
yes_or_no: 'No',
quantity: 1,
eventId: 588a107edf666e0273614cca,
name: 'Will this work?' },
{...},
{...},
{ price: undefined,
yes_or_no: 'No',
quantity: 1,
eventId: 588a107edf666e0273614cca,
name: 'Will this work?' }
...]
然而,事实证明像...
“这是新的OBJARRAY:” [对象的对象],[对象的对象],[对象的对象],[对象的对象]
你(也)在你的代码中有一个致命的缺陷,那就是你将在每次迭代中覆盖testObj,这意味着你的数组最终会以同一个对象(* last * 1)多次结束,而不是每个插槽中都有一个新的对象 - 您需要将'var testObj = {}'**放在forEach循环** –
之内,这是什么<% %>永远在线?你不能把<%放在第一行,%>放在最后? –
我想是这样..我不知道。谢谢! – FDRH