[英]JavaScript nasted default parameters
假设我想处理集合数组中对象的一些属性x 。 但是集合可能包含没有这些属性的对象,甚至是未定义的对象。 例如
let array = [
{x: 1},
{x: 2},
{},
{x: 4},
undefined
]
这个想法是用默认参数来保护我自己免受这种边缘情况的影响。 设为0 。 我试图解决这个问题
array.map(({x: x = 0}) => process(x))
但它未定义失败。 有没有办法用默认参数和解构来解决这个问题,而无需在map函数中编写check / set代码?
您可以为默认对象指定默认值
array.map(({x : x = 0} = 0) => process(x));
你可以在.map
之前使用.filter
来清除所有的falsy
值,如null
, 0
, ''
, false
array = array
.filter((el) => el)
.map(({x: x = 0}) => process(x));
在MDN
有很好的描述
如果没有传递值或未定义,则默认函数参数允许使用默认值初始化形式参数。
所以null
是值。,所以如果你将null
传递给函数,则默认值不会被使用,例如
function test(x = 10) {
console.log(x);
}
test(undefined); // 10
test(); // 10
test(null); // null
test(0); // 0
test(''); // ''
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.