假设我想在集合数组中处理一些 x 对象属性。但是集合可能包含没有这些属性的对象,甚至包含 undefined 。例如
let array = [
{x: 1},
{x: 2},
{},
{x: 4},
undefined
]
这个想法是用默认参数保护我自己免受这种边缘情况的影响。设为 0 。我试图解决这个问题
array.map(({x: x = 0}) => process(x))
但它在未定义上失败了。有没有办法用默认参数和解构来解决这个问题,而无需在map函数中编写检查/设置代码?
答案 0 :(得分:2)
您可以为默认对象指定默认值
array.map(({x : x = 0} = 0) => process(x));
答案 1 :(得分:1)
您可以在.filter
之前使用.map
来清除所有null
值,例如0
,''
,false
,{{1 }}
array = array
.filter((el) => el)
.map(({x: x = 0}) => process(x));
在Example
中有很好的描述
默认函数参数允许使用默认值初始化形式参数(如果没有值或未定义) 过去了。
所以null
是值。所以如果你将null
传递给函数默认值,则不使用,例如
function test(x = 10) {
console.log(x);
}
test(undefined); // 10
test(); // 10
test(null); // null
test(0); // 0
test(''); // ''