当前位置: 首页 > 知识库问答 >
问题:

如何删除未定义的和null值从一个对象使用lodash?

姚航
2023-03-14

我有一个Javascript对象,如:

var my_object = { a:undefined, b:2, c:4, d:undefined };

如何删除所有未定义的属性?错误属性应该保留。

共有3个答案

仲阳朔
2023-03-14

正确答案是:

_.omitBy({ a: null, b: 1, c: undefined, d: false }, _.isNil)

这导致:

{b: 1, d: false}

其他人在这里给出的选择:

_.pickBy({ a: null, b: 1, c: undefined, d: false }, _.identity);

还将删除此处不需要的false值。

尤茂材
2023-03-14

如果你想删除所有的Falsey值,那么最紧凑的方法是:

对于Lodash 4.x及更高版本:

_.pickBy({ a: null, b: 1, c: undefined }, _.identity);
>> Object {b: 1}

对于遗留的Lodash 3. x:

_.pick(obj, _.identity);

_.pick({ a: null, b: 1, c: undefined }, _.identity);
>> Object {b: 1}
曹高阳
2023-03-14

您可以简单地链接_. omit()_. isUn定义_. isNull组合,并通过延迟计算获得结果。

演示

var result = _(my_object).omit(_.isUndefined).omit(_.isNull).value();

2016年3月14日更新:

正如dylants在注释部分提到的,您应该使用_. omitBy()函数,因为它使用谓词而不是属性。您应该将此用于洛蒂什版本4.0.0及以上。

演示

var result = _(my_object).omitBy(_.isUndefined).omitBy(_.isNull).value();

2016年6月1日更新:

正如Max Truxa所评论的那样,lodash已经提供了一个替代的_. isNil,它检查null未定义的

var result = _.omitBy(my_object, _.isNil);
 类似资料:
  • 问题内容: 您能告诉我如何从json对象中删除所有null和空字符串值吗?删除密钥时出现错误。 到目前为止,这是我所拥有的,但是不能正常工作: 问题答案: 您实际上是要删除。您需要使用数组访问符号: 但是,这也将删除value等于0的地方,因为您没有使用严格的比较。使用来代替: 但是,这只会使对象浅走。要深入地做,可以使用递归: 请注意,如果您愿意使用lodash / underscore.js之

  • 假设我有一个雇员对象列表,每个雇员类都有雇员姓名、雇员地址、工资等属性。现在我必须删除名称为“John”和Salary的雇员对象 列表empList=new ArrayList 根据我的理解,若要解雇具有上述情况的员工,我应使用以下代码: 因此,基本上上述代码将从列表中删除所需的Employee对象。如果我的理解正确,请告诉我。 除此之外,请澄清以下几点:1.当我们有数百万条记录时,我们将如何解决

  • 问题内容: 我需要从表中删除列,但是当我尝试删除它时: 对象“ object_name”取决于列“ column_name”。 ALTER TABLE DROP COLUMN column_name失败,因为一个或多个对象访问此列。 我可以在系统表中查找依赖关系并手动将其删除,但是我需要进行迁移(使用SQL DDL),因此团队中的所有其他成员只需进行更新,运行迁移,就不必搞砸了。系统对象。 问题答

  • 我很难从自定义对象的ArrayList中删除重复项。 删除重复项 自定义对象等于() 删除重复项后的输出 关于为什么它实际上没有删除重复项,有什么提示吗?或者它实际上是通过将副本替换为原始副本来删除副本?不知道这里发生了什么。

  • 我有两个对象列表,它们在两个列表中都有重复名称。我需要从清单2中删除清单1中的所有重复值。 下面是一个场景,类有名称变量,用这个变量需要检查清单1中的重复值并需要删除。 //这是具有3个对象的第一个列表 清单1大小为1 请建议我在Java8与流。

  • 问题内容: 我将列表添加到sessionStorage像: 及其工作正常,现在我想通过productId从此列表中删除单个对象。 问题答案: 请参阅以下文章:http : //www.nczonline.net/blog/2009/07/21/introduction-to- sessionstorage/ 如果要从会话存储中删除指定键/值对,则需要如下所示: 对于您的情况: 此外,适当的实现允许