你在数组中把这种字典称为什么?
[{
id: 1,
name: 'Category 1',
children: [{
id: 2,
name: 'Subcategory 1'
}, {
id: 3,
name: 'Subcategory 2'
}]
}, {
id: 2,
name: 'Category 2',
children: [{
id: 2,
name: 'Subcategory A'
}, {
id: 3,
name: 'Subcategory B'
}]
}]
据我所知,它实际上是一个对象数组,以及如何使用它。我对它的概念/元编程名称更感兴趣。
所以最终的问题是,如果你想在与另一位开发人员交谈时尽可能具体,那么你在技术上称之为什么呢?也许用一个技术数学术语来描述它?
谢谢!
答案 0 :(得分:2)
基本上你有tree个节点。
此对象是一种数据结构,用于保持父级及其子级的依赖关系或关系。
一个节点包含id
,name
和children
,它是一个数组,可以包含更多节点。
给定节点的结构是
{
id: 1,
name: 'Category 1',
children: []
}
给定的示例以root身份显示数组,这意味着根目录有多个节点。
答案 1 :(得分:1)
编辑:好像你在询问“对象数组”是否有特殊名称。不,没有,这只是在任何语言的编程中无处不在的想法。我甚至都不认识那些甚至称之为模式的人。
数组的要点是它可以容纳多种类型的东西。内部数组是一个对象数组。它被称为children
。儿童是复数。这是正确的。
外部数组只包含一个对象。也许程序员打算稍后添加更多对象。也许它被传递给期望数组的方法。我不知道,除了“一个对象的数组”之外,不可能推断任何东西。
这些是我用你的例子看到的唯一有点不寻常的东西。有关对象如何容纳数组以及数组如何容纳对象,请查阅任何Javascript资源。
答案 2 :(得分:0)
在浏览器控制台中:
> var x= [{
id: 1,
name: 'Category 1',
children: [{
id: 2,
name: 'Subcategory 1'
}, {
id: 3,
name: 'Subcategory 2'
}]
}];
> typeof x;
// "object"
> x.constructor;
// function Array() {
// [native code]
// }
> typeof x[0];
// "object"
> x[0].constructor;
// function Object() {
[native code]
}