首页 > 解决方案 > 如何迭代多个对象并删除某个属性

问题描述

我想先说我对编码很陌生(很抱歉,如果这是一个非常简单的查询 - 但它让我很难过!)

我第一次尝试遍历对象并删除指定的键值对。

我有一个包含用户对象数组的函数,在该数组中我想从每个对象中删除人名。

我尝试使用 .length 属性遍历对象,但得到了结果Reference Error: name is not defined.

当我尝试以下操作时(但这并不理想,因为我希望代码在没有指定单个索引号的情况下运行):

delete users[0].name; 
delete users[1].name; 

for (let i = 0; i < users.length; i++) {
    if (users[i] === name) {
        users.splice(i, 1); 
     }
    return users;  
}

实际结果:ReferenceError: name is not defined 我希望结果从对象中删除名称:''值。

标签: javascriptobject

解决方案


您可以迭代数组并删除不需要的属性。这会改变给定的数据。

for (var i = 0; i < users.length; i++) {
    delete users[i].name;
}

高级版本使用不需要的属性进行解构,并使用休息语法来获取所有其他属性并返回此对象。

users = users.map(({ name, ...object }) => object);

推荐阅读