删除JS对象属性的方法小结

771 阅读1分钟

1 前言

发起请求的时候,发现有些参数并不需要,这时候就要删除这些参数了,如果这些参数写在了对象中,那怎样删除不需要的参数呢?下面记录了几种方法。

2 方法

2.1 delete 操作符

有点简单粗暴

  const User = {
    firstname: 'xiao',
    lastname: 'hong'
  }
  console.log(User.firstname) // xiao
  delete User.firstname // 删除属性
  console.log(User.firstname) // undefined

2.2 利用ES6的解构赋值

比较省事的感觉

    const {a, ...ajaxData} = { a: 1, b: 2, c: 3 }
    console.log(ajaxData) // { b: 2, c: 3 }

2.3 把属性设置为undefined

性能相对较好。不过这种不算删除,因为属性还在

    const User = {
      firstname: 'xiao',
      lastname: 'hong'
    }
    User.firstname = undefined
    console.log(User) // { firstname: undefined, lastname: "hong" }
    for( key in User){
    	console.log('key value', key, User[key]) // key value firstname undefined // key value lastname hong
    }

2.4 遍历对象,然后重新创建一个新的对象,达到删除效果

通过 Object 的 keys()遍历对象

    const User = {
      firstname: 'xiao',
      lastname: 'hong'
    }
    let newUser = {}
    Object.keys(User).forEach((item, index) => {
    	if (item !== 'firstname') newUser[item] = User[item]
    })
    console.log(newUser) // { lastname: "hong" }

通过for...in...遍历对象

    const User = {
      firstname: 'xiao',
      lastname: 'hong'
    }
    let newUser = {}
    for(let key in User) {
        if (key !== 'firstname') newUser[key] = User[key]
    }
    console.log(newUser) // { lastname: "hong" }