2012-10-26 107 views
1

整个键这可能是我缺乏术语的情况下,但如果有人能见识一下这个我会感激:删除从JavaScript对象

我有它返回一个JSON数组的例程,完美的作品,但我希望根据传递的内容做一些计算。

因此,我已经将数组复制到一个临时对象(称为tmp)中,然后我希望从该对象中移除某些不必要的'keys'(?)。

例如,我的 'TMP' 对象开始了具有:

fldCat2,fldCat3等等。

我不需要的是与'fldCat3'有关的任何东西,所以我希望从对象中移除整个密钥。

为了验证这一点,我已经做了以下内容:

 console.log(tmp); 

     delete tmp.fldCat3; 
     delete tmp['fldCat3']; 

     var prop = "fldCat3"; 
     delete tmp[prop]; 

     console.log(tmp); 

然而这些DELETE方法不是一个从TMP对象删除“fldCat3”。

有什么东西很明显我明白了吗?

编辑

已附加对象的屏幕截图从内萤火虫(值移除)

FireBug output

+2

您可能没有提供足够的代码,因为您发布的代码段与从'tmp'对象中删除'fldCat3'键没有任何问题。 – lanzz

+0

都删除tmp.fldCat3&删除tmp ['fldCat3']应该工作得很好。你能否粘贴一段不按预期工作的代码块,包括创建对象? –

+0

用屏幕截图修正了问题。 – JasonMHirst

回答

2

鉴于您的屏幕截图,我假设您的问题是您正试图从实际上具有这些属性的对象数组中删除属性。

你将不得不通过所述阵列从每个这些移除fldCat3的所有元素都做这样的事

for (var i = 0; i < tmp.length; i++) 
    delete tmp[i].fldCat3; 

在这里你循环。

+0

完美!!!!根据你以前的帮助,会相应地改变,谢谢Jacob,非常感谢。 – JasonMHirst

+0

@JasonMHirst很好听。我很高兴它有帮助。 –

0

我已经经历了这个问题了。我所做的是在从对象中删除密钥后使用UnderscoreJS_.compact(myObject)

+0

非常棒的图书馆,感谢您向我展示这些内容,这将有助于分组等其他内容! – JasonMHirst