你在JavaScript中称这种东西是什么?

时间:2016-10-05 16:09:00

标签: javascript

你在数组中把这种字典称为什么?

[{
  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'
  }]
}]

据我所知,它实际上是一个对象数组,以及如何使用它。我对它的概念/元编程名称更感兴趣。

所以最终的问题是,如果你想在与另一位开发人员交谈时尽可能具体,那么你在技术上称之为什么呢?也许用一个技术数学术语来描述它?

谢谢!

3 个答案:

答案 0 :(得分:2)

基本上你有tree个节点。

此对象是一种数据结构,用于保持父级及其子级的依赖关系或关系。

一个节点包含idnamechildren,它是一个数组,可以包含更多节点。

给定节点的结构是

{
    id: 1,
    name: 'Category 1',
    children: []
}

给定的示例以root身份显示数组,这意味着根目录有多个节点。

答案 1 :(得分:1)

编辑:好像你在询问“对象数组”是否有特殊名称。不,没有,这只是在任何语言的编程中无处不在的想法。我甚至都不认识那些甚至称之为模式的人。

数组的要点是它可以容纳多种类型的东西。内部数组是一个对象数组。它被称为children。儿童是复数。这是正确的。

外部数组只包含一个对象。也许程序员打算稍后添加更多对象。也许它被传递给期望数组的方法。我不知道,除了“一个对象的数组”之外,不可能推断任何东西。

这些是我用你的例子看到的唯一有点不寻常的东西。有关对象如何容纳数组以及数组如何容纳对象,请查阅任何Javascript资源。

答案 2 :(得分:0)

  1. Javascript中的所有内容都是一个对象。
  2. 这是Array类型的对象,它包含一组对象,可能是Object类型(默认对象类型)
  3. 在浏览器控制台中:

    > 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]
    }