jQuery / JS splice()不能处理对象数组

时间:2014-01-30 21:34:47

标签: arrays object splice

我在拼接工作时遇到了麻烦。

我有一个数组,我将对象推入......

其中一个'属性'在这些对象上我推是一个数组(到目前为止我?):)

快速示例:

var userPicks = [];

userPicks.push({casename:caseName, fullname:fullName, trialdate:trialDate, citystate:cityState, plaintiff:plaintiff, itemsordered:itemsOrdered=[{name:itemOrdered, price:itemPrice}]});

这一切都很好,花花公子...我可以推送内容..访问它们并在控制台中查看正确的数据(FireBug)

但是当我尝试拼接某些东西时......我在FireBug / console中遇到错误..

TypeError: userPicks[i].itemsordered[x].splice is not a function

但是,我可以在'子阵列中添加内容。 (我将它称为...... itemsorderd [x]数组)..访问/读取它们......?

console.log("Name Check: "+userPicks[i].itemsordered[x].name);  //works

userPicks[i].itemsordered.push({name:itemOrdered, price:itemPrice}); //works

但拼接不起作用?

我错过了什么?语法错误莫名其妙?

PLEASE!,,只有在你想提供帮助时才回答......不要只是告诉我你不知道或没时间提供帮助。

我似乎不能SPLICE()对象属性中的数组..(虽然推,并且访问/读取相同的数组很好)

所有'真实'感谢帮助!

感谢。

1 个答案:

答案 0 :(得分:1)

您正在尝试在对象而不是数组上调用splice:

  • userPicks[i].itemsordered是数组
  • userPicks[i].itemsordered[x]是数组中的一个对象,而不是数组本身。

你想在userPicks[i].itemsordered上调用splice,即:

userPicks[i].itemsordered.splice(...)