删除空属性对象的Underscore.js / falsy值

在前端开发中,我们经常需要删除对象中的空属性。这些空属性可能是 nullundefined 或者 '' 等 falsy 值。本文将介绍如何使用 Underscore.js 来删除对象中的空属性,并提供一些示例代码和指导意义。

Underscore.js 简介

Underscore.js 是一个 JavaScript 工具库,提供了许多实用的函数来简化 JavaScript 编程。其中包括对对象和数组的操作函数。在本文中,我们将使用 Underscore.js 的 pick()compact() 函数来删除对象中的空属性。

pick() 函数

pick() 函数可以从对象中选择指定的属性并返回一个新的对象。它接受一个对象作为第一个参数,后跟任意数量的字符串参数,这些字符串参数表示要选择的属性。例如:

------------- ------- ---- --- ------- ----------- ------- -------
-- -- ------ ------- ---- ---

在上面的示例中,我们从对象 {name: 'John', age: 30, gender: undefined} 中选择了 nameage 属性,并返回了一个新的对象 {name: 'John', age: 30}

注意到我们传递了一个值为 undefinedgender 属性。这个属性在新的对象中被省略了。这说明 pick() 函数会自动过滤掉对象中的 falsy 属性。

compact() 函数

compact() 函数可以从数组中删除所有的 falsy 值,并返回一个新的数组。它接受一个数组作为参数,例如:

------------- -- ------ -- --- -- ----- ------------
-- -- --- -- --

在上面的示例中,我们传递了一个包含 falsy 值的数组 [0, 1, false, 2, '', 3, null, undefined]compact() 函数会将其中的 falsy 值全部删除,并返回一个新的数组 [1, 2, 3]

删除对象中的空属性

有了以上两个函数,我们就可以很容易地删除对象中的空属性了。具体来说,我们可以使用 pick() 函数选择对象中所有非空属性,并返回一个新的对象,然后再使用 compact() 函数删除该对象中的 falsy 值。示例如下:

--- --- - ------ ------- ---- --- -------- --- ------ ------
--- ------ - --------------------- --------------- -
    ------ --------
----
-- -- ------ ------- ---- ---

在上面的示例中,我们定义了一个包含空属性的对象 {name: 'John', age: 30, address: '', phone: null}。我们使用 pick() 函数选择了所有非空属性,并返回了一个新的对象 {name: 'John', age: 30, phone: null}。注意到这个对象中依然包含一个值为 null 的属性 phone。最后,我们使用 compact() 函数删除了该对象中的 falsy 值,得到了最终的结果 {name: 'John', age: 30}

指导意义

本文介绍了如何使用 Underscore.js 来删除对象中的空属性。具体来说,我们使用了 pick()compact() 函数来过滤掉对象中的 falsy 属性。通过本文的学习,我们可以更加深入地理解 JavaScript 中的 truthy 和 falsy 值,并且掌握了使用 Underscore.js 来操作对象和数组的技巧。

同时,我们也应该注意到,在实际开发中,我们经常需要删除的不仅仅是空属性,还可能包括一些无用的属性。因此,在使用 Underscore.js 进行

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/11609