js中for循环中对象赋值,退出循环后对象的属性值消失

为什么我用数组arr赋值给obj后,访问obj里面什么都没有呢?

img

var arr=[];要放在循环中
你题目的解答代码如下:

var obj = {};
for (var i = 1; i <= 9; i++) {
    var arr = [];
    for (var j = 1; j <= i; j++) {
        var s = j+"*"+i+"="+(i*j);
        arr.push(s);
        if (j==i) {
            obj[i-1] = arr;
        }
    }
}
console.log(obj);

img

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

img

这个改成[]


var arr =[];
    var obj = {};
    for(var i =1;i<10;i++){
        for(var j = 1;j<=i;j++){
            var s0 = i*j;
            var s1 = String(i);
            var s2 = String(j);
            var s3 = s2+'*'+s1+'='+s0;
            if(j==i){
                obj[i-1]=s3;
                arr.push(obj);
                obj={};
            }
        }
    }
    console.log(arr)

你看是不是需要这种效果