当前位置: 首页 > 面试题库 >

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

房唯
2023-03-14
问题内容
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


问题答案:

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

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

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


 类似资料:
  • 原始关闭原因未解决 我的脚本正在打印作为的结果。 有人能解释一下如何使用打印from?

  • 当我运行版本:显示依赖项更新时,它将显示我的依赖项的所有最新beta/里程碑版本。我更喜欢使用“release”包。 <代码>版本:使用最新版本谈论用最新版本“替换”。但是,我更喜欢手动更新版本。 我可以运行版本插件来报告我的依赖项和插件的最新“发布”版本吗? 我指的是mvnrepository上列出的包的“类型”。组织机构

  • 使用 Photoshop,您可以打印任何兼容的 3D 模型,而无需担心 3D 打印机的限制。在准备打印时,Photoshop 会自动使 3D 模型防水。Photoshop 还会生成必要的支撑结构(支架和底座),以确保您的 3D 打印能够成功完成。 准备打印 3D 对象 选择“窗口”>“工作区”>“3D”以切换到 3D 工作区。 在 Photoshop 中打开 3D 模型。如果需要,请在打开 3D

  • 本文向大家介绍js console.log打印对象时属性缺失的解决方法,包括了js console.log打印对象时属性缺失的解决方法的使用技巧和注意事项,需要的朋友参考一下 1. 序 在编写代码时,我们常常用 console.log() 的方式将信息在控制台中打印出来以帮助我们进行前端调试。一般情况下,我们打印普通值都没有问题,但在打印对象类型时,我们就需要注意点了,要不然可能会出现不符合期望的

  • 问题内容: 在没有附加组件的Safari(实际上是大多数其他浏览器)中,将在执行的最后状态而不是在调用时的状态下显示对象。 我必须克隆对象只是为了将其输出以获取该行的对象状态。 例: 问题答案: 我认为您正在寻找。不会执行您想要的操作,因为它会打印对对象的引用,并且在您将其弹出时将其更改。调用时在对象中打印属性的目录。 下面的JSON想法是一个好主意;您甚至可以继续解析JSON字符串,并获得类似.

  • 问题内容: 我是Java的新手。我说,我有一个类 人 。我要列印 上面的代码给出如下输出: 这有什么意义? 该对象是否具有某种唯一标识? 我可以自定义吗?我的意思是编写自己的函数,该函数在打印时会输出? 如果是这样,我该怎么做? 问题答案: 如果要打印任何对象的有意义的内容,则必须实现自己的方法,该方法将覆盖parent()类的方法。默认情况下,所有类(无论您创建什么)都扩展类。 样例代码: 输出