【问题标题】:Trying to recreate my console.log objects试图重新创建我的 console.log 对象
【发布时间】:2017-07-08 15:10:15
【问题描述】:

我有一个包含 4 个对象的 var,当我在控制台中将其注销时会看到这些对象。但是我一直在尝试创建这个返回变量的结构(我想对其进行排序,但首先想重新创建结构),但在最后一个障碍中失败了。

这是控制台在 original 变量上显示的内容:[Object, Object, Object, Object]

这是我通过 created 变量得到的:[Object]

这是我尝试重新创建它的代码:

this.obj =      [{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'blue'}],
                    [{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'green'}],
                    [{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'red'}],
                    [{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'yellow'}]
                    ;

originalcreated 的第一个对象是相同的,但是为什么它看不到我的其他三个对象?如果我在我的代码周围添加两个[],它会看到所有四个,但是它们已更改为数组而不是对象...

【问题讨论】:

    标签: javascript arrays object typescript


    【解决方案1】:

    您的代码似乎已损坏,如果您以可读的方式对其进行排序,那就很清楚了:

    var obj = [
        {
            items: [{
                code: 'bravo', color: 'blue', date: '2017-01-01', pos: 'up'
            }, {
                code: 'alpha', color: 'blue', date: '2017-01-02', pos: 'down'
            }],
            color: 'blue'
        }] // <=== the array ends here, but now you have this:
        , [{ items: [{ ...
    

    然后编译器会这样做:

    var obj = [
        {
            items: [{
                    code: 'bravo', color: 'blue', date: '2017-01-01', pos: 'up'
                }, {
                    code: 'alpha', color: 'blue', date: '2017-01-02', pos: 'down'
                }],
            color: 'blue'
        }
    ], _a = (void 0)[0], _b = ....
    

    如您所见,它创建了另一个变量 (_a) 来存储其他数据。

    【讨论】:

    • 这也是我得到的,这就是为什么我说当我在代码周围添加额外的括号以将其从 [a,b],[c,d] 更改为 [[a,b],[c,d]] 时,我得到了所有四个对象,但它们是现在不是对象而是数组:[Array[1], Array[1], Array[1], Array[1]] 而不是 [Object, Object, Object, Object]。那么你认为我会如何包含其他 3 个对象而不将它们转换为数组?
    【解决方案2】:

    它适用于任何想知道的人:

    this.obj =      [{0:{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'blue'}},
                    {1:{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'green'}},
                    {2:{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'red'}},
                    {3:{items:[{code:'bravo',color:'blue',date:'2017-01-01',pos:'up'},
                             {code:'alpha',color:'blue',date:'2017-01-02',pos:'down'}],
                     color:'yellow'}}]
                    ;
    }
    

    【讨论】:

      猜你喜欢
      • 2022-12-09
      • 2018-05-25
      • 2021-08-29
      • 1970-01-01
      • 1970-01-01
      • 2014-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多