我的函数应该检查,如果它接收到的参数是一个2d数组,且整数在一个范围内。如果参数满足这些条件,则该函数应返回一个数组。否则我的函数应该返回什么?我应该抛出错误还是应该返回false或0之类的东西?在这种情况下有什么好的做法?
答案 0 :(得分:1)
由于您的函数是一个返回布尔值的测试函数-它会检查条件是否得到满足-然后它应针对真实条件返回true
,对于虚假条件返回false
。
答案 1 :(得分:1)
回答已编辑的问题:
我不会只用一个函数来做到这一点,而是像这样构造它:
const is2dArray = array => array.every( item => Array.isArray( item ) && item.length === 2 );
const withinRange = (min, max) => input => input >= min && input <= max;
const mainFunction = arr => {
if( Array.isArray( arr ) ){
if( is2dArray( arr ) && arr.every( row => row.every( withinRange(0,5) ) ) ){
const newArray = /* make the new array */;
return newArray;
}
}
return []; /* if desired and makes sense; or throw an error here; */
}
如果此函数的目标是将2d数组转换为另一个数组,则返回[]可能是最佳选择。如果结果为空数组,则总是可以向上方抛出错误。