Javascript数组显示单个属性的值,但不显示完整数组
试图寻找,但没有成功。我是JS的新手,当然我错过了一些简单的东西。试图找出为什么当我发布到控制台时,我的数组显示为空-即使至少有一个属性-值对Javascript数组显示单个属性的值,但不显示完整数组,javascript,arrays,Javascript,Arrays,试图寻找,但没有成功。我是JS的新手,当然我错过了一些简单的东西。试图找出为什么当我发布到控制台时,我的数组显示为空-即使至少有一个属性-值对 function getCash(denom,value){ if (change>value&&cashRegister[denom]>=value){ change-=value; cashRegister[denom]-=value; cashRegister[den
function getCash(denom,value){
if (change>value&&cashRegister[denom]>=value){
change-=value;
cashRegister[denom]-=value;
cashRegister[denom]=cashRegister[denom].toFixed(2);
if (changeBack[denom]==undefined) changeBack[denom] =0;
changeBack[denom]+=value;
// Below shows "changeBack[denom]=QUARTER 0.25" as expected
console.log("changeBack[denom]="+denom+" "+changeBack[denom]);
//Below shows "changeBack=" I expected to see the object, tried to stringify but still empty.
console.log("changeBack="+changeBack);
}
}
尝试将其作为单独的日志来执行,您将看到您的对象
console.log(changeBack);
尝试将其作为单独的日志来执行,您将看到您的对象
console.log(changeBack);
console.log(“changeBack=”+changeBack)
应该是console.log(“changeBack=”,changeBack)代码>
来自的附加上下文
带有对象的+
(字符串连接运算符)将调用
对象上的toString
方法,并将返回字符串。所以
''+object
相当于object.toString()
。和toString
打开
对象返回“[对象对象]”
使用,
将对象作为单独的参数传递给
方法
console.log(“changeBack=”+changeBack)
应该是console.log(“changeBack=”,changeBack)代码>
来自的附加上下文
带有对象的+
(字符串连接运算符)将调用
对象上的toString
方法,并将返回字符串。所以
''+object
相当于object.toString()
。和toString
打开
对象返回“[对象对象]”
使用,
将对象作为单独的参数传递给
方法
JS中的数组(主要)是数字数组,而不是关联数组。
这就是为什么你的钥匙没有显示在记录器中
但由于JS是灵活的,因为JS中的heck和数组继承自对象,所以您可以向它们添加任意键。仍然不能使它们成为关联数组
因此,使用对象{}
作为关联数组
并且不要用concat字符串和其他值来记录它们。使用多个参数:console.log(“changeBack”,changeBack)代码>以便您可以检查控制台中的每个值。JS中的数组(主要)是数字数组,而不是关联数组。
这就是为什么你的钥匙没有显示在记录器中
但由于JS是灵活的,因为JS中的heck和数组继承自对象,所以您可以向它们添加任意键。仍然不能使它们成为关联数组
因此,使用对象{}
作为关联数组
并且不要用concat字符串和其他值来记录它们。使用多个参数:console.log(“changeBack”,changeBack)代码>以便您可以检查控制台中的每个值。当我这样做时,我得到的是一个空数组“[]”当我这样做时,我得到的是一个空数组“[]”将调试器置于if条件下并进行检查,我认为条件没有得到满足。JS中的数组(主要)是数字数组,而不是关联数组。这就是为什么你的键没有显示在记录器中。将调试器设置为if条件并检查,我认为条件没有得到满足。JS中的数组(主要)是数字数组,而不是关联数组。这就是为什么你的按键没有显示在日志中的原因。假设你在Chrome中运行这个,添加一个调试器在您的第一个console.log()上方编码>(或断点),然后按F10直到出现错误,并将鼠标悬停在对象上以确保其具有您认为应该具有的值假设您在Chrome中运行此操作,则添加一个调试器在您的第一个console.log()上方编码>(或断点),然后按F10键,直到出现错误,然后将鼠标悬停在该对象上,以确保该对象具有您认为应该更改为object的值,并且现在一切正常。谢谢。对changeBack={}的“changeBack”声明;更改为object,现在一切正常。谢谢。对changeBack={}的“changeBack”声明;