首页 > 解决方案 > 我在 javascript 中的循环代码给出了“内存不足”错误

问题描述

我正在学习 Javascript,而我正在制作一个循环代码,其中数组“tomultiply”中的每个元素都与自身和其他元素相乘,并将答案存储在数组“multiplelist”中。但是运行我的代码总是给我一个“内存不足”的错误。如果愿意,请纠正我的代码。您最好了解我正在采取的方法并按原样纠正它。谢谢你。

var multiplelist = [];
var tomultiply = [2, 3, 12, 8, 9];
var primary;
var secondary = 0;
var n = 0;
for (primary = tomultiply[n] ; primary = tomultiply[tomultiply.length - 1]; primary = tomultiply[n++]) {
    for (secondary = tomultiply[n] ; secondary = tomultiply[tomultiply.length - 1]; secondary = tomultiply[n++]) {
        var operation = primary * secondary;
        multiplelist.push(operation);
    }
}
console.log(multiplelist)

标签: javascript

解决方案


您应该在 for 循环的第二个参数中使用条件而不是赋值。

如果我理解您的代码的意图,我希望下面的代码对您有用。

var multiplelist = [];
var tomultiply = [2, 3, 12, 8, 9];
var primary;
var secondary = 0;
var n = tomultiply.length;
for (let i = 0, primary = tomultiply[0] ; i < n; primary = tomultiply[++i]) {
    for (let j = 0, secondary = tomultiply[0] ; j < n; secondary = tomultiply[++j]) {
        var operation = primary * secondary;
        multiplelist.push(operation);
    }
}
console.log(multiplelist);


推荐阅读