我认为这是非常基本的,但是我无法在线找到简单方法来找到答案。以下是我正在使用javascript开发的Web应用程序的控制台(console.log(group))上显示的对象。
对象是一个包含对象数组的组。我想做的就是使用组中对象的名称来返回组中的特定对象。
例如,为了将数组返回0,我想插入Washer_Cube而不是返回它。目前,如果我执行以下操作,它将起作用:
group.children [0];
但是我想要类似的东西:
group.children.name [“ Washer_Cube”]
这显然是错误的语法。
任何帮助表示赞赏!!!!
Yb {uuid: "5FAA0E8A-2423-41A4-BB27-95B0C021F4F4", name: "", type: "Group", [enter image description here][1]parent: Fd, children: Array(14), …}
castShadow: false
children: Array(14)
0: ha {uuid: "37CAB95F-E817-415F-A0DF-3B90BFA1A610", name: "Washer_Cube", type: "Mesh", parent: Yb, children: Array(0), …}
1: ha {uuid: "BA931E5D-C456-492F-97FC-D25E64CC5F43", name: "Cube_wall", type: "Mesh", parent: Yb, children: Array(0), …}
2: ha {uuid: "F0E308E5-5EC2-4989-9331-DDC6CCC07429", name: "2", type: "Mesh", parent: Yb, children: Array(0), …}
3: ha {uuid: "02FDDF6E-9D8E-4209-AAAE-DA32BAEB2CE6", name: "4", type: "Mesh", parent: Yb, children: Array(0), …}
答案 0 :(得分:0)
您可以遍历children
数组中的每个子项,并检查该子项的name属性是否与标题匹配。如果是这样,您可以将其退回。在下面,我创建了一个帮助器函数,您可以使用该函数来获取该特定对象(如果存在)(否则它将仅返回null)。
function getChildByHeader(children, header) {
for (let child of children) {
if (child.name === header) {
return child
}
}
return null
}
var testObject = {
uuid: "5FAA0E8A-2423-41A4-BB27-95B0C021F4F4",
name: "",
type: "Group",
castShadow: false,
children: [
{ uuid: "37CAB95F-E817-415F-A0DF-3B90BFA1A610", name: "Washer_Cube", type: "Mesh" },
{ uuid: "BA931E5D-C456-492F-97FC-D25E64CC5F43", name: "Cube_wall", type: "Mesh" },
{ uuid: "F0E308E5-5EC2-4989-9331-DDC6CCC07429", name: "2", type: "Mesh" }
]
}
console.log(getChildByHeader(testObject.children, "Washer_Cube"))
这将按预期返回子对象:
{ uuid: "37CAB95F-E817-415F-A0DF-3B90BFA1A610", name: "Washer_Cube", type: "Mesh"}