我有一个继续2 ^ x序列的余烬函数,其中X是数组的长度。
//sequence of ^2: 1, 2, 4, 8, 16, etc...
this.set("numSeq", Ember.Array([1, 2, 4]));
当我按下按钮时,我使用update
功能
update: function() {
var numSeq = this.get("numSeq");
let Sqlength = numSeq.length;
let node = Math.pow(2, Sqlength);
const nodeMax = Math.pow(2, 20);
if (node >= nodeMax) {
this.initializeSequence();
} else if (Sqlength >= 10) {
sequence.pushObject(node);
let smallFry = sequence[0];
sequence.removeObject(smallFry);
} else {
sequence.pushObject(node);
}
}
更新函数有两个限制,当新数组输入超过2 ^ 20时我们重置数组,当长度大于10时,我们删除最小元素并仍然添加新节点。
我的问题出现在尝试将新对象推送到数组并删除最底部的元素时,我用过的任何方法slice
,removeat
,removeobject
,它&#34 ;冻结"数组,只是添加最后一个元素而不是新节点
(按下按钮12次后的示例 [1,2,4,...,512,1024,1024,1024]
没有错误所以我相信这是我的错误和对概念的误解
答案 0 :(得分:0)
我的错误是使用长度作为指数,我只需要使用currentNode * 2来获取下一个节点,而不是使用长度
保持长度为10总是给我1024,这就是为什么它永远不会增长!我自己的失败,但想通了