这是一段简单的 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]
最佳答案
那是因为这一行
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]);
关于javascript - 动态更新数组中的循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33492107/