收起
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);
如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!
也是不行的
要去掉arr.length = 0;
数组是按引用地址传递的。当把一个数组从一个变量传递到另一个变量中时,两个变量都指向这同一个数组的引用地址。当改变数组的元素时,实际上是先读取变量中的引用地址找到数组,再改变这个数组的元素。这样之后再用另一个变量中的引用地址所找到的也是这同一个数组,会获取到一样的数组内容。obj[i-1] = arr;是让 obj[i-1]与arr指向同一个数组的引用地址。你对arr.length 设置为 0, obj[i-1]存放的数组 length 也会设置为 0
报告相同问题?
程序员都在用的中文IT技术交流社区
专业的中文 IT 技术社区,与千万技术人共成长
关注【CSDN】视频号,行业资讯、技术分享精彩不断,直播好礼送不停!