从我的对象数组中删除不需要的键

时间:2011-07-21 12:30:28

标签: javascript

我的对象

如何从中移除UserID,UserName等键...我的意思是选择的键...删除操作符在我的情况下不起作用。

for (i=0 i <obj.length; i ++) {
    delete obj[i]['keyName']; 
}

以上不起作用,也不会引发错误。任何其他方式...

5 个答案:

答案 0 :(得分:6)

您错过了;之后的i=0

此外,obj必须为MyObject.PatientVitalsGetResult.Vitals

答案 1 :(得分:1)

不要使用delete;它会将元素设置为undefined而不是删除它。相反,请使用splice

var i;
for(i = 0; i < obj.length; i++){
    obj[i].splice('keyName',1);
}

答案 2 :(得分:1)

没有标准的方法,afaik。您需要执行过滤不需要的属性的旧Object的条件副本:

var oldObject = { /* your object */ } ;
var newObject = { } ;

var filter = { "UserID": true , "UserName": true } ;

for(var key in oldObject) 
    if( !(key in filter) ) newObject[key] = oldObject[key] ; 

然后在以下代码中使用获取的newObject

答案 3 :(得分:1)

var vitals = obj["PatientVitalsGetResult"]["Vitals"];


for (i=0; i < vitals.length; i++) {
    delete(vitals[i]["UserID"])
};

答案 4 :(得分:0)

这个解决方案怎么样......

Array.prototype.containsValue = function (value) {
        for (var k in this) {
            if (!this.hasOwnProperty(k)) {
                continue;
            } //skip inherited properties
            if (this[k] == value) {
                return true;
            }
        }
        return false;
    };

for (var key in Object) {
    var unwantedKeys = ['UserName', 'UserID'];
    if (unwantedKeys.containsValue(key)) continue;
    // Play with your Object it won't contain these unwanted keys.
}

删除应该有效,我不确定你正在做的错误..

http://jsfiddle.net/spechackers/43hTD/