javascript - 如果参数不为空,则返回值
问题描述
我正在尝试编写一个函数,该函数将采用三个参数,任何参数都可能具有空值。我必须返回其他两个参数,这些值不为 null 例如,如果我有a、b和c参数并且a和b的值为 null,我必须返回c。或者如果b和c的值为 null 我必须返回a。或者如果a为空,则返回b 和 c。我怎样才能做到这一点?
function returnNotNull= (a, b,c) => {
if (a !== null && b === null && c === null)
return (a);
编辑 更多说明:
- 一次最多可以有 2 个参数为空,例如:如果
a and b
为空,则c
必须有值。在那种情况下,我想return only c
- 如果只有 1 个参数为 null,我希望其他 2 个返回它可以是数组或对象
- 如果没有一个参数不为空,我想返回所有参数
- 三个参数都不能为空,所以请不要考虑所有参数都为空的情况
解决方案
这有点奇怪,有时返回单个值,有时返回它们的数组,但它似乎满足您的需求并且实际上很灵活,因为它可以处理任意数量的参数,而不仅仅是三个:
const returnNotNull = (...args) => {
const result = args.filter(a => a !== null)
return result.length == 1 ? result[0] : result
}
console.log(returnNotNull('a', 'b', 'c')) //~> ['a', 'b', 'c']
console.log(returnNotNull('a', 'b', null)) //~> ['a', 'b']
console.log(returnNotNull('a', null, 'c')) //~> ['a', 'c']
console.log(returnNotNull('a', null, null)) //~> 'a'
console.log(returnNotNull(null, 'b', 'c')) //~> ['b', 'c']
console.log(returnNotNull(null, 'b', null)) //~> 'b'
console.log(returnNotNull(null, null, 'c')) //~> 'c'
console.log(returnNotNull(null, null, null)) //~> []
但是,如果你总是可以返回一个数组,这会更简单,而且在我看来更清晰:
const returnNotNull = (...args) => args.filter(a => a !== null)
这将简单地返回一个包含所有非空值的数组。
推荐阅读
- python - 标准差,数据集 Python 中每 5 个值的平均值
- javascript - 在不同的文件中调用模态函数反应
- javascript - html标题中的Highcharts img;即使设置了 Highcharts Security AST,onerror 也不会触发
- vb.net - Excel-DNA VB.net中使用构造函数和类解构函数的问题
- python - 使用 tensorflow 提取 ELMo 特征并将其转换为 numpy
- php - 有没有办法用静态变量对函数进行单元测试?
- c++ - 当我删除一个指针并且我没有立即分配任何东西时,我应该使用 NULL 还是 nullptr?
- java - WSL2:在 IntelliJ 上重新加载 Maven -> FileSystems$DefaultFileSystemHolder 和 HttpWagon 上的 NoClassDefFoundError
- java - Flyway - 当历史表不存在时,不会创建基线表
- python - 使用事务插入数据时出现 NoReferencedTableError