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

Removing unwanted keys from my array of objects

本文关键字:不需要 删除 对象 数组      更新时间:2023-09-26

My Object

如何删除键像UserID, UserName从它…我是说选定的键…删除操作符不工作在我的情况下。

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

不起作用,也不会抛出错误。还有别的办法吗?

您漏掉了i=0后面的;

另外,obj需要是MyObject.PatientVitalsGetResult.Vitals

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

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

恐怕没有标准的方法。您需要执行旧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

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

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

这个解决方案如何....

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/