对象的float属性返回不一致的值

时间:2019-11-17 23:35:12

标签: javascript json

我有一个包含float属性的对象数组,由于某种原因,其中许多值会返回并向浏览器(html和控制台)呈现与实际计算的文本不同的文本。

我看不到数字中的任何模式,但是当第一次迭代结束时停止以下循环时,单个输出 是正确的。

任何人都可以告知引起此行为的原因以及如何解决此问题吗?


调试日志:

// get nearby brand colours 
for(let i=0, l=sorted.length; i<l; i++){
    sorted[i]['similar'] = floss.similar( sorted[i].hex, this.elements.colour_distance.value, this.getSelectedColourDistanceMethod() ); 
    console.log('sorted[i][\'similar\']', sorted[i]['similar']);
    console.log('JSON.stringify(sorted[i][\'similar\'])', JSON.stringify(sorted[i]['similar']));
}
return;

一个错误值的示例,但该属性在调用该属性时使用:

An example of an incorrect value, but the one that is used when the property is called

正确的值,当与JSON.Stringify显示时

Correct value, when displayed with JSON.Stringify

1 个答案:

答案 0 :(得分:0)

毫无疑问,这是在此之前而不是之后发生的通过引用问题。

通过迭代对象属性并分配给新属性来解决,而不是将结果设置为对象本身并进行扩展。