首页 > 解决方案 > 如何限制类型脚本中的数组大小?

问题描述

const arrPassword = []
const passarrayLength = 5


function addPassword(passwd) {
  if(arrPassword.length === passarrayLength)
  {
    arrPassword.shift()
  }

  arrPassword.push(passwd)
  console.log(arrPassword.length)
  console.log(arrPassword)
}

addPassword('Pass')
addPassword('Pass2')
addPassword('Pass3')
addPassword('Pass4')
addPassword('Pass5')
addPassword('Pass6')
addPassword('Pass7')
addPassword('Pass8')
addPassword('Pass9')
addPassword('Pass10')

在某些情况下,我想将用户密码历史记录等对象存储在对象数组中,以确保他在过去 5 次中没有使用过密码。我的问题是我可以指定一个大小为 5 的对象数组,然后将新密码推送到数组,并且数组中大于大小集合的任何对象都将被丢弃?还是我必须自己做这个,我计算我的数组中的对象,如果它是=最大大小,我在将新对象推送到数组之前弹出最旧的对象?根据我所做的研究 typescript 或 javascript 没有固定的数组大小,我可以指定一个包含 3 5 个对象的数组,但需要分配所有 5 个对象,即使这样推送也会使其成为 6 个对象,因为没有限制。那么处理这个问题的最佳方法是什么?

我包括了一些我想出的基本概念

标签: javascriptarraystypescript

解决方案


我可以指定一个大小为 5 的对象数组,然后将新密码推送到数组,并且数组中大于大小集合的任何对象都将被丢弃吗?

没有。javascript 中的数组没有最大大小,因此没有“内置”方法可以做到这一点。

或者我是否必须自己计算数组中的对象,如果它是=最大大小,我在将新对象推送到数组之前弹出最旧的对象?

是的,完全正确。制作一个处理这种逻辑的小类应该不会太难。


推荐阅读