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

标签 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]

最佳答案

那是因为这一行

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

关于javascript - 动态更新数组中的循环不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33492107/

相关文章:

javascript - 在 VueJS 中使用路由时设置超时错误

javascript - 两次相同的 onclick 函数 - 只有一个有效

javascript - 仅使用 Bing 翻译 Web 小部件翻译页面的某些部分

javascript - popoto.js - 预定义密码查询

javascript - 如何在node.js和express上的Restful API中设置编码UTF-8或WINDOWS_CP_1251

javascript - 使用 Angular.js 查找正在进行的 http get 请求的下载状态

javascript - 类型错误 : gitlab is not a function

Javascript - 如何更改类的父类?

javascript - Bootstrap-combobox 值未在 PHP 中发布

javascript - 如何在 JavaScript 循环中添加延迟?