这可能是我缺乏术语的情况,但如果有人可以启发我,我会很感激:
我有一个返回JSON数组的例程,运行得很好但是我希望根据传递的内容进行一些计算。
因此我将数组复制到一个临时对象(称为tmp)中,然后我希望从该对象中删除某些不必要的“键”(?)。
例如,我的'tmp'对象开始时为:
fldCat2,fldCat3等等。
我不需要的是与'fldCat3'相关的任何内容,所以我希望从对象中删除整个密钥。
为了测试这个,我做了以下事情:
console.log(tmp);
delete tmp.fldCat3;
delete tmp['fldCat3'];
var prop = "fldCat3";
delete tmp[prop];
console.log(tmp);
然而,没有一种删除方法会从tmp对象中删除'fldCat3'。
有什么东西非常明显我不见了吗?
编辑
在Firebug中附加了对象的屏幕截图(删除了值)
答案 0 :(得分:2)
鉴于你的截图,我假设你的问题是你试图从实际上具有这些属性的对象数组中删除属性。
你必须做这样的事情
for (var i = 0; i < tmp.length; i++)
delete tmp[i].fldCat3;
在这里,你遍历所有数组中删除fldCat3的所有元素。
答案 1 :(得分:0)
我也遇到过这个问题。我所做的是在从对象中删除密钥后使用UnderscoreJS的_.compact(myObject)
。