1

这可能是我缺乏术语的情况,但是如果有人能就此启发我,我将不胜感激:

我有一个返回 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 中对象的屏幕截图(已删除值)

萤火虫输出

4

2 回答 2

2

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

你将不得不做这样的事情

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

在这里,您循环遍历所述数组的所有元素,从每个元素中删除 fldCat3。

于 2012-10-26T09:29:13.063 回答
0

我也遇到过这个问题。我所做的是在从对象中删除密钥后使用UnderscoreJS 。_.compact(myObject)

于 2012-10-26T09:16:27.950 回答