console.log输出的数组与真实不一致

danggaojue7107 2017-09-10 01:58:24
/*n元买n个兔子问题*/
function exhaustiveSearch(n) {
cases=new Array();
rabbit = new Array();
rabbit["male"] = 0;//公兔数量
rabbit["female"] = 0;//母兔数量
rabbit["child"] = 0;//雏兔数量
// 公兔一只5元,则一定少于n/5只
for (rabbit["male"] = 0; rabbit["male"] < n / 5; rabbit["male"]++) {
//母兔一只3元,则一定少于n/3只
for (rabbit["female"] = 0; rabbit["female"] < n / 3; rabbit["female"]++) {
// 雏兔数量一定是n-母兔-公兔
for (rabbit["child"] = (n - rabbit["male"] - rabbit["female"]); rabbit["child"] < n; rabbit["child"]++) {
// console.log("总数相等了");
if (rabbit["child"] % 3 == 0) {
// console.log("小兔一元三只");
if (rabbit["male"] * 5 + rabbit["female"] * 3 + rabbit["child"] / 3 == n) {
console.log(rabbit);//**输出**
cases.push(rabbit);
}
}
}
}
}
// console.log(cases);
return cases;
}


所以,为何上下的输出不一致呢
...全文
1170 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
勇敢的猫坚强 2019-12-13
  • 打赏
  • 举报
回复
引用 2 楼 天际的海浪 的回复:
console.log输出的对象展开显示的属性,是鼠标点击三角展开时的属性值。不是console.log输出时的值
爬起来登录了给你点个赞,在这事上浪费3小时了,我说怎么打印的值不对
  • 打赏
  • 举报
回复
chrome控制台打印对象是引用的,默认没有展开,展开后就是最后修改的值,所以出现[.....]的值不同,展开一样的 问题,你看最后有个感叹号,就是提示这个用的 直接打印字符串

console.log(JSON.stringify(rabbit));


Web开发学习资料推荐
javascript运行机制浅析
XDomainRequest,IE8+跨域请求对象
天际的海浪 2017-09-10
  • 打赏
  • 举报
回复
console.log输出的对象展开显示的属性,是鼠标点击三角展开时的属性值。不是console.log输出时的值
2017-09-10
  • 打赏
  • 举报
回复
一个是输出时的值,一个是循环结束后的值

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧