gpt4 book ai didi

javascript - 嵌套对象相互覆盖

转载 作者:行者123 更新时间:2023-12-03 11:05:24 25 4
gpt4 key购买 nike

对于在我看来相当简单的数据结构,我遇到了一些问题。我有一个名为 mylist 的对象,其中包含 1. 一个嵌套的空 {} 和 2. 一个用于将对象添加到 (1) 的函数。请考虑以下代码:

var object1 = {name: "Object_1"}
var object2 = {name: "Object_2"}
var mylist = {
list: {},
add: function(item, val){
this.list[item] = val
}
}
mylist.add(object1,5)
mylist.add(object2,10)
console.log(mylist)

现在,我希望输出是

{ list: { object1: 5, object2: 10 }, add: [Function] }

但我得到的是:

{ list: { '[object Object]': 10 }, add: [Function] }

由于某种原因,列表中以前的对象被覆盖。此外,似乎还发生了某种字符串转换(由于引号),但我不确定为什么。为什么我没有得到我期望的输出?有人有这方面的好资源吗?

提前非常感谢。莫里斯

最佳答案

这是因为您传递的是对象而不是字符串,因此每当您执行此操作时:

mylist.add(object1,5);

您应该传递一个字符串,而不是传递对象object1:

mylist.add(object1.name,5);

这将返回:

{ list: { "Object_1": 5 }, add: [Function] }

否则,如果您不发送字符串,则您传递的任何内容都将被转换为字符串

关于javascript - 嵌套对象相互覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27882879/

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