gpt4 book ai didi

javascript - 如何使 console.log(obj) 中的对象属性在 Chrome 中按字母顺序显示?

转载 作者:行者123 更新时间:2023-12-01 00:09:50 24 4
gpt4 key购买 nike

过去,当我使用 console.log(obj) 在 Javascript 中显示对象的属性时,属性会按字母顺序显示。最近,这种情况似乎发生了变化。我假设新顺序更接近属性在代码中的实际存储方式(尽管我的印象是对象属性一开始就没有“真正的”固定顺序)。

但是,对于大型、复杂的类,按字母顺序显示对于查找我正在寻找的属性非常有用。有没有像以前一样按字母顺序显示属性的选项?

(我还想知道当前属性的“代表”顺序到底是什么,以及它是如何确定的。)

最佳答案

though I was under the impression that object properties didn't have a "real" fixed order to begin with



从 ES2015 开始,它们确实如此(甚至以前被豁免的操作现在也被引入了),但你可能希望继续表现得好像它们没有那样。对于自己的属性,它是它们添加到对象的顺序(整数索引属性除外,它以数字顺序在其他属性之前列出); this question 的答案中的详细信息. (没有定义继承属性的顺序,尽管引擎对它们的处理方式相当一致:它们在自己的属性之后列出它们,遵循相同的顺序规则。但同样,这没有指定。)

Recently, this seems to have changed.



从实验上看,它现在看起来像是遵循属性顺序。

你可以给自己一个实用函数来创建一个新对象,并按字母顺序添加属性:
function logAlpha(obj) {
const x = {};
for (const key of Object.keys(obj).sort()) {
x[key] = obj[key];
}
console.log(x);
}

当然,不像 console.log(obj) ,这将是一个快照,而不是原始对象的实时链接。

你可以做很多调整(包括原型(prototype)属性,包括原型(prototype)本身,包括完整原型(prototype)链的排序版本等),但这就是要点。

关于javascript - 如何使 console.log(obj) 中的对象属性在 Chrome 中按字母顺序显示?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59560322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com