动态更新的数组循环不起作用

时间:2015-11-03 05:39:55

标签: javascript

这是一个简单的javascript代码,可以将一个数组中的唯一数据添加到另一个数组中。

var data = [1, 2, 3, 2]
var dump = [];
for (var i = 0; i < data.length; i++) {
    if (dump.length == 0) {
        dump.push(data[i])
    } else {
        for (var a = 0; a < dump.length; a++) {
            if (dump[a] != data[i]) {
                if (a >= dump.length) {
                    dump.push(data[i])
                }
            }
        }
    }
}

我只从数据数组中得到1项:[1]而不是[1,2,3]

1 个答案:

答案 0 :(得分:1)

这就是这条线

if (a >= dump.length) {
    dump.push(data[i])
}

当a大于或等于dump.length

时,您推送数据

但在你的循环中

a < dump.length

它不会在那里

试试这个

for (var a = 0; a < dump.length; a++) {
    if (dump[a] == data[i]) { // when found break there
        break;
    }
}
if (a == dump.length) // if nothing found loop will be fully executed
    dump.push(data[i]);

JSFIDDLE