js遍历对象和删除对象对应的key值

本文介绍了一种JavaScript方法,用于遍历表单头部数据并移除无效条目。通过对表单元素进行迭代检查,若发现值为false,则从数据结构中删除该条目。
var formThead = this.formThead;
console.log(formThead)
var arr = [];
for (var i in formThead) {
  // console.log(formThead[i])
  if (formThead[i] == false){
    delete(formThead[i]);
    // arr.push([i,':',formThead[i]])
  }

}
### JavaScript遍历对象属性及其 #### 使用 `for...in` 语句 此方法可以用来枚举对象自身的可枚举属性以及继承的可枚举属性。需要注意的是,它不仅会迭代对象本身的属性,还会迭代原型链上的可枚举属性。 ```javascript const obj = { name: "Alice", age: 25, }; for (let key in obj) { if (obj.hasOwnProperty(key)) { // 这里确保只处理对象自身的属性 console.log(`${key}: ${obj[key]}`); } } ``` 这段代码展示了如何通过 `hasOwnProperty()` 来过滤掉来自原型链上的属性[^1]。 #### 利用 `Object.keys()`, `Object.values()`, `Object.entries()` 这些静态方法返回的对象表示形式使得我们可以更容易地操作数据结构: - `Object.keys(obj)` 返回一个由给定对象自身所有可枚举属性组成的数组。 - `Object.values(obj)` 类似于前者但是返回的是属性而不是键名。 - `Object.entries(obj)` 同时提供键相应的作为二维数组的形式。 对于遍历并打印每个属性与其对应的情况,推荐使用 `Object.entries()`: ```javascript const person = new Map([ ["name", "Bob"], ["age", 30], ]); // 如果是普通对象则不需要转换成Map if (!person instanceof Map){ const entries = Object.entries(person); for (let [key, value] of entries) { console.log(`${key} -> ${value}`); } }else{ for (let [key,value] of person){ console.log(`${key} -> ${value}`); } } ``` 这里展示了一个例子,其中既考虑到了常规对象也考虑到特殊情况下的映射(Map)[^2]. #### 反射机制的应用 JavaScript 的反射特性允许动态访问或修改程序内部状态的能力,在某些场景下非常有用。例如,可以通过 `Reflect.has(target, propertyKey)` 或者 `target[propertyKey] !== undefined` 来判断某个特定属性是否存在;而要获取所有的自有属性(包括不可枚举),还可以借助 `Object.getOwnPropertyNames(object)` 函数[^3]: ```javascript function reflectProperties(obj) { let keys = Reflect.ownKeys(obj); keys.forEach((key)=>{ console.log(`Property Name:${String(key)}, Value:${obj[String(key)]}`); }); } reflectProperties({a:1,b:"two"}); ``` 以上就是几种常见的用于遍历 JavaScript 对象属性的方式,并附带了一些实用的例子说明。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值