javascript - 如何迭代多个对象并删除某个属性
问题描述
我想先说我对编码很陌生(很抱歉,如果这是一个非常简单的查询 - 但它让我很难过!)
我第一次尝试遍历对象并删除指定的键值对。
我有一个包含用户对象数组的函数,在该数组中我想从每个对象中删除人名。
我尝试使用 .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
我希望结果从对象中删除名称:''值。
解决方案
您可以迭代数组并删除不需要的属性。这会改变给定的数据。
for (var i = 0; i < users.length; i++) {
delete users[i].name;
}
高级版本使用不需要的属性进行解构,并使用休息语法来获取所有其他属性并返回此对象。
users = users.map(({ name, ...object }) => object);
推荐阅读
- java - 如何将实时时间添加到 JPanel 以及按钮按下时间到其他 JPanel?
- java - 为什么这段代码会执行两条 println 语句,而不是一条一条打印?
- python - AttributeError:“dict”对象没有属性“forward”
- google-cloud-platform - GCLB 缺少 SameSite 和安全标志
- javascript - 没有递归地居中所有孩子的中心元素?
- r - R - 如何使用 ggplot2 对散点图的最大值和最小值点进行着色和标记?
- jmeter - 我在单线程中有多个登录 API,我需要从 CSV 文件中为每个 API 获取不同的值
- java - WebSphere:Spring Application 生成日志文件但未写入日志文件
- node.js - 应用户请求停止 multer 文件上传
- flutter - 如何将动画添加到“DropdownButtonFormField”(颤振)