gpt4 book ai didi

javascript - 为什么 console.log() 创建/**id :4**/and/**ref:4**/values?

转载 作者:搜寻专家 更新时间:2023-10-30 20:55:15 25 4
gpt4 key购买 nike

几分钟前我做了 this answer答案片段在下面

let obj = {staff_changes: []};
let newStaff=[];
for (let i = 0; i < 4; i++) {
newStaff.push({id: 'staff' +i});
obj.staff_changes.push({
id: i,
newStaff: newStaff
});
}
console.log(obj);

如果您运行上面的代码片段,您可以看到 /**id:4**//**ref:4**/ .这是什么?

当代码执行时,会将相同的重复值插入数组。所以我希望它在开始时生成一个 Id:4如果存在相同的重复值,那么就写一个像/**ref:4**/这样的注释其中 4表示 Id=:4已经生成。

So I want to know Is my understand is correct?. If my understanding is correct , then how can we avoid this? Shall I use object.assign() before push the value into array to avoid this?

最佳答案

您的数据结构包含对同一对象的多个引用。 console.log 足够智能,可以简化输出。

请注意(据我所知),对于不是 String 实例的对象,规范不保证 console.log 的任何特定输出,因此您不能依赖该输出在浏览器、版本、月相等方面是相同的。

考虑一个无限递归的数据结构,如 const a = []; a.push(a); console.log(a),您更喜欢哪个:您的计算机在打印无限递归数组时锁定或 console.log 缩写它?

const a = []
a.push(a)
console.log(a)
// [
// /**id:1**/
// /**ref:1**/
// ]

关于javascript - 为什么 console.log() 创建/**id :4**/and/**ref:4**/values?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50622558/

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