如何从对象中删除未定义的属性

时间:2019-05-04 05:19:13

标签: typescript

如何从对象中删除所有未定义的属性?

换句话说,将其转换为:

{
  a: 'asd'
  b: undefined
}

对此:

{
  a: 'asd'
}

2 个答案:

答案 0 :(得分:1)

遍历键并使用delete operator删除属性值是否为undefined

let data = {
  a: 'asd',
  b: undefined
}

Object.keys(data).forEach(k => {
  if (data[k] === undefined) delete data[k];
})

// or one liner
// Object.keys(data).forEach(k => data[k] === undefined && delete data[k])

console.log(data);

或使用for...in迭代器。

let data = {
  a: 'asd',
  b: undefined
}

for(let k in data){
  if (data[k] === undefined) delete data[k];
}

console.log(data);

答案 1 :(得分:1)

您可以循环查找对象键并通过delete方法删除。

let obj = {
  a: 'asd',
  b: undefined
}

Object.keys(obj).forEach(key => obj[key] === undefined ? delete obj[key] : '');

console.log(obj)