#鸿蒙学习大百科#如何对for循环进行优化?

如何对for循环进行优化?

HarmonyOS
2024-10-11 09:56:55
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
鹈鹕说蟹蟹你
class Time {
  static start: number = 0;
  static info: number[] = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
}

function getNum(num: number): number {
  let total: number = 348;
  for (let index: number = 0x8000; index > 0x8; index >>= 1) {
    //!此处会多次对Time的info及start进行查找,并且每次查找出来的值是相同的
    total += ((Time.info[num-Time.start] & index) !== 0) ? 1 : 0;
  }
  return total;
}

修改后:

function getNum(num: number): number {
  let total: number = 348;
  const info = Time.info[num-Time.start]; // 从循环中提取不变量
  for (let index: number = 0x8000; index > 0x8; index >>= 1) {
    if ((info & index) != 0) {
      total++;
    }
    return total;
  }
}
分享
微博
QQ
微信
回复
2024-10-11 15:39:18
相关问题
#鸿蒙学习大百科#如何实现ui优化
229浏览 • 1回复 待解决
#鸿蒙学习大百科#包大小优化
195浏览 • 1回复 待解决
#鸿蒙学习大百科#ArkTS如何生成xml?
302浏览 • 1回复 待解决
#鸿蒙学习大百科#什么是LocalStorage?
241浏览 • 1回复 待解决
#鸿蒙学习大百科#什么是AppStorage?
219浏览 • 1回复 待解决