Javascript 如何迭代多个对象并删除某个属性
首先,我想说我对编码非常陌生(如果这是一个非常简单的查询,那么很抱歉,但这让我很困惑!) 我第一次尝试遍历对象并删除指定的键值对 我有一个带有用户对象数组的函数,在该数组中,我想从每个对象中删除人名 我尝试使用.length属性遍历对象,但得到的结果是Javascript 如何迭代多个对象并删除某个属性,javascript,object,Javascript,Object,首先,我想说我对编码非常陌生(如果这是一个非常简单的查询,那么很抱歉,但这让我很困惑!) 我第一次尝试遍历对象并删除指定的键值对 我有一个带有用户对象数组的函数,在该数组中,我想从每个对象中删除人名 我尝试使用.length属性遍历对象,但得到的结果是引用错误:未定义名称。 当我尝试以下方法时,它可以工作(但这并不理想,因为我希望代码在没有指定单个索引号的情况下运行): 删除用户[0]。名称; 删除用户[1]。名称; for(设i=0;i
引用错误:未定义名称。
当我尝试以下方法时,它可以工作(但这并不理想,因为我希望代码在没有指定单个索引号的情况下运行):
删除用户[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]。名称当有两个用户并且希望将其转换为循环时,code>是否执行所需操作?错误意味着您没有定义名称变量。您需要像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;
}