javascript - 无论如何要在仅用对象构造的对象变量中添加许多对象?
问题描述
我想在仅使用对象构造的变量中添加多个对象。语言(Javascript)。示例: var x = {"a": {}, "b": {"name": "Hello World"}};
我正在尝试为 xa 添加多个对象,但是当我在 xa 中添加多个对象并且当我请求已添加到 xa 的这些对象的某些值时,控制台返回未定义。我想知道是否可以在不使用数组的情况下添加多个对象。
var x = {"a": {}, "b": {"name": "Hello World"}};
x.a = {"name": "Paradox"};
x.a += {"first", "Hello"};
x.a += Object.assign({"second", "World"});
console.log(x.a.first);// Returns undefined
当放置 console.log(xafirst) 它返回未定义。我知道使用数组我会得到我想要的结果,那就是“你好”。但我想知道我是否可以在不使用数组的情况下添加许多对象并获得相同的结果。
解决方案
您当前的逻辑将不起作用,因为+=
用于连接,您不能连接对象,甚至是这样的数组。
您可以使用许多选项来做您想做的事,我将向您展示其中的两个:
首先:x.a
作为一个对象(你已经拥有)使用,你可以在运行时创建一个键并为其赋值,然后访问 xa["keyName"] 将返回该值,例如:x.a["first"]
将返回“Hello”。
var x = {
"a": {},
"b": {
"name": "Hello World"
}
};
x.a["name"] = "Paradox";
x.a["first"] = "Hello";
console.log(x.a)
console.log(x.a.first);
第二:x.a
用作对象数组。您创建一个带有键/值的对象并插入到这个数组中,但是,要找到一个值,您需要遍历数组,有很多方法可以做到这一点,我在这里使用find()
,检查代码以获得更好的理解.
var x = {
"a": [],
"b": {
"name": "Hello World"
}
};
x.a.push({"name": "Paradox"});
x.a.push({"first": "Hello"});
console.log(x.a.find(y => y["first"]))
推荐阅读
- modeling - 中国古典政治秩序愿景的程序建模
- javascript - 使用 ecmascript 6 将 javascript 文件导入另一个文件的语法是什么?
- javascript - typescript 文件在哪里以及如何成为我项目中的 JS 文件?
- javascript - NodeJs 无法读取对象,说它未定义
- php - Laravel 中“php artisan config:cache”和“php artisan cache:clear”的区别
- javascript - 带有php的html动态名称
- wordpress - Word Press 自定义查询分页不起作用
- c# - 列表中麦克风输入的最大值错误c#
- c# - 为什么在尝试更新数据库时出现语法错误?
- json - vba json读取子数组怎么读