我有一个Javascript对象,如:
var my_object = { a:undefined, b:2, c:4, d:undefined };
如何删除所有未定义的属性?错误属性应该保留。
正确答案是:
_.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
值。
如果你想删除所有的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}
您可以简单地链接_. 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/ 如果要从会话存储中删除指定键/值对,则需要如下所示: 对于您的情况: 此外,适当的实现允许