2017-03-09 57 views
1

我在javascript中製作了一個複雜的樹狀數組/對象來動態地創建類似的頁面(使用不同的配置文件)。由於它是靜態的,所以公司的政策是將這個數組保存在主常量文件中(當然,作爲聲明常量)。所以我的問題是,我怎樣才能在JavaScript數組中指定一個聲明屬性?我知道我能做到以下幾點:聲明式地分配javascript數組屬性

var a=[9,6,0,4]; 
a.title='profile 1'; 

但問題是,那些指示,並不斷的文件是一個大的目標,所以我不能使用。我知道我可以使用一個普通的對象,但我真的想要數字索引,動態長度,推/彈出方法等。我也知道每個像使用一個數字作爲屬性名Object.keys(a)一樣。長度等,但如果它僅僅是一個數組,它會讓我的生活變得更容易。基本上,我需要一個指令這創造:

Array[2] 
>0: Object 
>1: Object 
>length: 2 
>title: "profile1" 
>__proto__: Array[0] 

編輯: 因爲混亂的,我會盡量清理,爲什麼我特別需要它是一個單一的指令。正如我所提到的,常量文件是一個大對象,沒有指令,但它是自己的聲明,所以它必須是一個屬性。

CONSTANTS={ 
    const1: 'something', 
    const2: 'something', 
    const3: 'something', 
    ... 
    const60: 'something', 
    myArray: [ 
     [{},{},{},{}],//here the title property would go directly on the array 
     [{},{},{},{}],//same 
     [{},{},{},{}],//etc. 
     ... 
    ] 
}; 
+0

沒有辦法做你的'var'初始化想要的東西。爲什麼不讓'a'成爲一個具有數組作爲其屬性的對象? – Pointy

+0

我不知道你期望輸出/結果是什麼。 – epascarello

+0

因爲它是一個動態數組數組,每個數組都有不同的特定屬性(如標題,元,隱藏等)。對不起,我沒有說明我所舉的例子不是實際的結構。正如我一開始所說的,真正的物體具有樹的複雜性。 –

回答

1

你可以使用Object.assign

var a = Object.assign([1, 2, 3, 4], {title: 'profile 1'}); 
+0

我希望有更多本地化的東西(比如賦值':'或'='),但它確實有效!如果有人可以在不使用方法的情況下提出解決方案(甚至是內置方法),那麼這將非常棒(爲了優化),但現在,這是我接受的答案。 –

+0

你可以使用一個臨時變量和逗號運算符。我會將其添加到帖子中。 – SimpleJ

+0

查看我的編輯,我無法編輯'CONSTANTS'之外的任何內容 –