【问题标题】:Return array that is not empty返回非空数组
【发布时间】:2022-01-12 16:57:18
【问题描述】:

我有两个这样的数组

const array1 = ['1','2','3'];
const array2 = [];

但它可能是array1是空的,第二个array2有成员,我需要的是我想创建getter来返回不为空的数组,像这样

 get notEmptyArray(): string[] {
    const array1 = ['1','2','3'];
    const array2 = [];
    return array1 or array2;
  }

我知道我可以做到

if (typeof array !== 'undefined' && array.length === 0) {
    // the array is defined and has no elements
}
if (array && !array.length) {
    // array is defined but has no element
}

但是有一些简单的内联吗?

【问题讨论】:

  • 可能是array1?.length ? array1 : array2?这只是基本逻辑,我不清楚你在处理这个问题时遇到了什么问题。
  • 但是逻辑没有多大意义:如果 array.length 为零,那仍然是一个完全有效的数组,为什么不直接返回“无论数组是什么,如果它存在,或者空数组,如果没有”,即return array ?? [];

标签: javascript typescript


【解决方案1】:

使用三元运算符(或两个)可以使您的解决方案非常简洁。这将首先检查 array1 是否有成员,如果有,则返回它。如果不是,它将检查 array2 并返回它或 null(如果它也是空的):

 return array1 && array1.length ? array1 : array2 && array2.length ? array2 : null

【讨论】:

  • 把这个嵌套的三元运算提取成一个独立的语句
猜你喜欢
  • 1970-01-01
  • 2012-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-11
  • 1970-01-01
  • 2017-07-12
  • 1970-01-01
相关资源
最近更新 更多