Javascript 如何迭代多个对象并删除某个属性

Javascript 如何迭代多个对象并删除某个属性,javascript,object,Javascript,Object,首先,我想说我对编码非常陌生(如果这是一个非常简单的查询,那么很抱歉,但这让我很困惑!) 我第一次尝试遍历对象并删除指定的键值对 我有一个带有用户对象数组的函数,在该数组中,我想从每个对象中删除人名 我尝试使用.length属性遍历对象,但得到的结果是引用错误:未定义名称。 当我尝试以下方法时,它可以工作(但这并不理想,因为我希望代码在没有指定单个索引号的情况下运行): 删除用户[0]。名称; 删除用户[1]。名称; for(设i=0;i

首先,我想说我对编码非常陌生(如果这是一个非常简单的查询,那么很抱歉,但这让我很困惑!)

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

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

我尝试使用.length属性遍历对象,但得到的结果是
引用错误:未定义名称。

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

删除用户[0]。名称;
删除用户[1]。名称;
for(设i=0;i
实际结果:
ReferenceError:未定义名称

我希望结果从对象中删除名称:''值。

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

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

一种简单的方法是使用
forEach
循环项目,并删除所需的属性

let users = [{name: "a", prop1: 1, prop2: 2},{name: "b", prop1: 2, prop2: 2}, {name: "c", prop1: 3, prop2: 2}];


users.forEach(user => {
  delete user['name'];
}); 

console.log("after deleting property", users);

问题中只有一个代码块可见,但您的意思是
delete users[0].name;删除用户[1]。名称当有两个用户并且希望将其转换为循环时,您想要做什么

如果是

for (let user of users) {
    delete user.name;
}

循环遍历数组中的每个用户并删除每个用户的
名称
属性。

要删除键值对

var users = [
  {name: "John", role: "Cleaner"},
  {name: "Jim", role: "Sergent"},
  {name: "Jackhn", role: "Baker"},
  {name: "Josh", role: "tinker"},
  {name: "Jenny", role: "Soldier"}
];

for (var i=0; i < users.length; i++) {
  delete users[i].name;
}
var用户=[
{姓名:“约翰”,角色:“清洁工”},
{姓名:“吉姆”,角色:“中士”},
{姓名:“杰克”,角色:“贝克”},
{名字:“Josh”,角色:“tinker”},
{姓名:“珍妮”,角色:“士兵”}
];
对于(var i=0;i
问题中只有一个代码块可见,但您的意思是
删除用户[0]。名称;删除用户[1]。名称是否执行所需操作?错误意味着您没有定义
名称
变量。您需要像
var name='Kate'这样的东西
如果要删除数组中名为Kate的用户。此时,您的
if()
检查不知道您要删除的名称。如果同时显示用户数组,则会有所帮助。使用splice时,它会从数组中删除完整的对象,而不仅仅是属性,这也会减少数组的大小。所以每次拼接阵列时,必须添加i--;或者在循环之前将长度保存在变量中,而不是每次都计算
.length
很好吗
for (let user of users) {
    delete user.name;
}
var users = [
  {name: "John", role: "Cleaner"},
  {name: "Jim", role: "Sergent"},
  {name: "Jackhn", role: "Baker"},
  {name: "Josh", role: "tinker"},
  {name: "Jenny", role: "Soldier"}
];

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