TypeScript中列表元素顺序检查逻辑实现需求
列表元素位置检查实现方案
需求
给定列表 empList = ['one','two','finish','one','three'],需要完成以下检查:
- 当'two'在'finish'前面时,把
this.beforeCheckFlag设为true - 当'two'在'finish'后面时,把
this.afterCheckFlag设为true
实现代码
直接通过索引比较就能实现,以JavaScript为例:
// 先初始化两个标记为false this.beforeCheckFlag = false; this.afterCheckFlag = false; const empList = ['one','two','finish','one','three']; const twoPos = empList.indexOf('two'); const finishPos = empList.indexOf('finish'); // 确保两个元素都在列表里再做判断 if (twoPos !== -1 && finishPos !== -1) { if (twoPos < finishPos) { this.beforeCheckFlag = true; } else if (twoPos > finishPos) { this.afterCheckFlag = true; } // 如果两个元素位置重合(当前案例不会出现),可自行补充处理逻辑 }
说明
- 用
indexOf()拿到两个元素的位置索引 - 先判断元素是否存在,避免找不到元素导致的索引为-1的异常
- 直接比较索引大小就能确定位置关系,进而设置对应的标记
内容的提问来源于stack exchange,提问作者lak
相关产品推荐
相关产品推荐

