为了账号安全,请及时绑定邮箱和手机立即绑定

Console.log仅显示打印对象的更新版本

Console.log仅显示打印对象的更新版本

慕森王 2019-09-26 15:09:50
Console.log仅显示打印对象的更新版本String.prototype.width = function(font) {   var f = font || '12px arial',       o = $('<div>' + this + '</div>')             .css({'position': 'absolute', 'float': 'left', 'white-space': 'nowrap', 'visibility': 'hidden', 'font': f})             .appendTo($('body')),       w = o.width();   o.remove();   return w;}function sortCustomFunction(a, b) {   if (a['text'].width() < b['text'].width())      return -1;   if (a['text'].width() > b['text'].width())      return 1;   // a must be equal to b   return 0;}var annoObj = {         'anno' : [             //an paikseis me auta (px to teleutaio na mpei prwto kok) oi mikres metatwpiseis ofeilontai sto padding.             { "label" : "fifth" , "text"  : "This is a sample text another one" , 'color' : 'red' },             { "label" : "first" , "text"  : "This is a sample" , 'color' : 'grey' },             { "label" : "second" , "text" : "sample" , 'color' : 'green' },             { "label" : "sixth" , "text"  : "This is a sample text another one text one mooooorreee" , 'color' : 'lightgreen' },             { "label" : "third" , "text"  : "another one" , 'color' : 'blue' },             { "label" : "forth" , "text"  : "one mooooorreee" , 'color' : 'purple' }                 ]     };     console.log(annoObj.anno);   //This should print the unsorted array (but it prints the sorted array).     annoObj.anno.sort(sortCustomFunction); //Sort the array     console.log(annoObj.anno);  //This should print the sorted (and it does)我正在做上面,一切正常。json对象内的数组按数组json元素中“ text”键的宽度值排序。我注意到的是console.log中的这种奇怪行为。我在排序之前和排序之后打印数组,并且在两次打印中都相同。它打印排序后的数组。为什么是这样?的jsfiddle
查看完整描述

2 回答

?
翻翻过去那场雪

TA贡献2065条经验 获得超14个赞

排序没有问题,但这是大多数浏览器控制台的众所周知的特性(一种优化):只有在打开对象时才使用该对象的新值来构建树。

如果您想在记录日志时查看对象的状态,并假设它足够小而不是递归对象,则可以这样克隆它:

console.log(JSON.parse(JSON.stringify(annoObj.anno)));


查看完整回答
反对 回复 2019-09-26
  • 2 回答
  • 0 关注
  • 607 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信