【发布时间】:2021-11-10 18:19:08
【问题描述】:
寻找一种方法来创建固定大小为 3 的对象数组,并用默认值填充它,但是当我推入数组时,它应该替换默认值。
示例:
声明一个数组,用“默认值”字符串填充数组
["default value", "default value", "default value"]
我现在将一些文本推送到这个初始数组并期待以下内容:
["Added Data", "Default value", "Default Value"]
我将更多数据推送到此数组并期望以下内容:
["Added Data", "Added Data", "Default Value"]
我再次将更多数据推送到此数组并期待以下内容:
["Added Data", "Added Data", "Added Data"]
所以最终结果应该是如果推送一个数据,那么数组的其余部分应该保持默认值,除非我将所有三个数据都推送到数组中。
注意:这个例子是一个字符串数组,只是为了展示一个例子,但我正在寻找的解决方案是对象数组。 Array.fill() 方法适用于 JavaScript 不可变值,如字符串、数字和布尔值。带有对象的数组,数组中的每个插槽都引用同一个对象,这不是我要找的。我希望每个对象都是独一无二的
【问题讨论】:
-
Array.fill 但它引用了与我正在执行对象数组相同的对象
-
这解决了固定长度数组:stackoverflow.com/questions/41139763/… - 但是,不解决数组元素替换功能 - 您需要自己构建它。
-
我不认为你可以用一个普通的数组来做到这一点。您需要创建一个自定义类或函数。
-
数组不是这样工作的。您可以考虑使用循环缓冲区:en.wikipedia.org/wiki/Circular_buffer
-
我建议实现你自己的实现。第二条评论中提出的想法之一。
标签: javascript typescript