【发布时间】:2018-12-23 22:46:11
【问题描述】:
我正在尝试下面的代码行。我想在外部while循环的每次迭代后将numbers保存在一个名为sn的数组中。但是,在每次迭代之后,sn 只包含最后一次迭代的 numbers。可能是我缺少sync 和async 的整个概念。
function test() {
var numbers = [0, 2, 7, 0];
var check = true;
var sn = [];
var p = 0;
while (check) {
var index = numbers.indexOf(Math.max(...numbers));
var value = Math.max(...numbers);
numbers[index] = 0;
for (var i = value; i > 0; i--) {
var temp = ++index;
index = temp % (numbers.length);
numbers[index] += 1;
}
console.log("numbers", numbers);
if (sn.includes(numbers)) { check = false };
sn.push(numbers);
console.log("hey there=========");
}
}
test();
【问题讨论】:
-
这里没有同步/异步。
-
您要存储
index值还是value? -
这句话背后的逻辑是什么?
index = numbers.indexOf(Math.max(...numbers));这伴随着numbers[index] = 0;肯定会取代那个值。这是你的意图吗?您的代码的总体目的是什么? -
您要将完整的
numbers数组保存到sn还是numbers中的所有值? -
是的@Adelin 我想用零替换数字。在 for 循环结束时,它将生成一个数组
numbers,我想将其保存到数组sn。
标签: javascript arrays node.js asynchronous synchronous