Javascript 如何在默认情况下为map函数设置一个值?

Javascript 如何在默认情况下为map函数设置一个值?,javascript,reactjs,Javascript,Reactjs,我正在使用React.js和 myArray.map(variable=>({value: variable.value, label: variable.label})) 一切正常,但有时会出现以下情况:TypeError:myArray为null 我该如何设置默认值或类似的内容 多谢各位 为避免此错误,必须在运行map功能之前执行检查 如果您在JSX之外执行此操作,就像代码中所显示的那样,那么代码应该如下所示: if (myArray && myArray.lengt

我正在使用React.js和

myArray.map(variable=>({value: variable.value, label: variable.label}))
一切正常,但有时会出现以下情况:
TypeError:myArray为null

我该如何设置默认值或类似的内容


多谢各位

为避免此错误,必须在运行
map
功能之前执行检查

如果您在JSX之外执行此操作,就像代码中所显示的那样,那么代码应该如下所示:

if (myArray && myArray.length > 0) {
   myArray.map(variable=>({value: variable.value, label: variable.label}))
}
myArray && myArray.length > 0 && myArray.map((...your code...))
如果您是在JSX内部执行此操作,那么代码应该如下所示:

if (myArray && myArray.length > 0) {
   myArray.map(variable=>({value: variable.value, label: variable.label}))
}
myArray && myArray.length > 0 && myArray.map((...your code...))
延伸回答

  • 如果您使用的是es6,那么可以使用可选的链接。像这样:

    myArray?.map(变量=>({value:variable.value,label:variable.label}))

  • 不是最佳解决方案,但在myArray为null时使用OR(| |)运算符:

    (myArray | |[]).map(变量=>({value:variable.value,label:variable.label}))