js如何从对象中删除属性值为空字符串的属性

function removeEmptyProperties(obj) {
  // 将对象转换为 [key, value] 数组
  const entries = Object.entries(obj);
  // 过滤掉属性值为空字符串的属性
  const filteredEntries = entries.filter(([key, value]) => value !== "");
  // 将过滤后的数组转换回对象
  const filteredObj = Object.fromEntries(filteredEntries);
  return filteredObj;
}

现在,filteredObj 中将只包含属性值不为空字符串的属性。注意,这个函数将返回一个新对象,而不是修改原始对象。如果你需要修改原始对象,可以使用 Object.assign() 方法将过滤后的属性复制回原始对象:

以上方法有不严谨之处,Object.entries无法获取到对象中的Symbol类型属性,如下

const key=Symbol('a')
const obj={
  [key]:'123'
}
// 此时调用上述方法,会返回obj为{}

推荐用Reflect.OwnKey

你可能感兴趣的:(javascript,开发语言,ecmascript)