首页 > 解决方案 > 从对象中删除空数组

问题描述

如果它是空的,我想从对象中删除一个数组。我已经尝试过了,它可以工作,但显然它正在改变原始数据,这对我来说并不是一个真正的问题。我只是想知道这是否是正确的方法。

const data = {
  arr1: [],
  arr2: ['ok'],
  arr3: ['ok']
}

Object.entries(data).forEach(([key, value]) => {
  if (value.length === 0) {
    delete data[key]
  }
})


console.log(data)
.as-console-wrapper { max-height: 100% !important; top: 0; }

标签: javascriptarraysobject

解决方案


也许是这样的(以避免编辑原始数据):

const data = {
  arr1: [],
  arr2: ['ok'],
  arr3: ['ok']
}

let res = Object.entries(data).reduce((acc, el) => {
  if (el[1].length > 0) {
    acc[el[0]] = el[1]
  }
  return acc;
}, {})

console.log(res)


推荐阅读