Ember功能:数组项目推送和删除

时间:2018-03-11 20:42:45

标签: javascript arrays ember.js

我有一个继续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时,我们删除最小元素并仍然添加新节点。

我的问题出现在尝试将新对象推送到数组并删除最底部的元素时,我用过的任何方法sliceremoveatremoveobject,它&#34 ;冻结"数组,只是添加最后一个元素而不是新节点

(按下按钮12次后的示例 [1,2,4,...,512,1024,1024,1024]

没有错误所以我相信这是我的错误和对概念的误解

1 个答案:

答案 0 :(得分:0)

我的错误是使用长度作为指数,我只需要使用currentNode * 2来获取下一个节点,而不是使用长度

保持长度为10总是给我1024,这就是为什么它永远不会增长!我自己的失败,但想通了