簡體   English   中英

如何在對象的開頭添加元素

[英]How to add an element at first of object

我有一個對象:

TICKET_PRIORITIES: {
    LOW: 'low',
    NORMAL: 'normal',
    HIGH: 'high',
    VERY_HIGH: 'very high'
}

在客戶端,我必須首先添加select。

結果我想成為

TICKET_PRIORITIES: {
    SELECT: 'select',    
    LOW: 'low',
    NORMAL: 'normal',
    HIGH: 'high',
    VERY_HIGH: 'very high'
}


<select ng-model="selectedPriority" ng-options="key as key | translate for (key, value) in priorities" class="form-control m-b"> </select> 

在此選擇中,我要選擇“選擇”選項,而選擇選項應位於下拉菜單的第一個。

var TICKET_PRIORITIES = {
    LOW: 'low',
    NORMAL: 'normal',
    HIGH: 'high',
    VERY_HIGH: 'very high'
  };
TICKET_PRIORITIES['SELECT']='select';
alert(JSON.stringify(TICKET_PRIORITIES));  

演示版

創建對象時不考慮對象屬性的順序,但是您可以創建新的屬性,例如:

TICKET_PRIORITIES = {
    LOW: 'low',
    NORMAL: 'normal',
    HIGH: 'high',
    VERY_HIGH: 'very high'
  }

TICKET_PRIORITIES.SELECT='select';

這是不可能的 Javascript不在乎或強制對象中屬性的順序(請參閱此問題以供參考)。 或者,引用ECMAscript標准(強調我的意思):

4.3.3對象對象是對象類型的成員。 它是屬性無序集合,每個屬性都包含原始值,對象或函數。 存儲在對象屬性中的函數稱為方法。

如果順序對您很重要,則您將需要使用數組的其他數據結構,例如:

TICKET_PRIORITIES: [
    {id: "LOW", label: "low"},
    {id: "NORMAL", label: "normal"},
    {id: "HIGH", label: "high"},
    {id: "VERY_HIGH", label: "very high"}
]

這使您可以執行以下操作( unshift將元素添加到數組的開頭):

TICKET_PRIORITIES.unshift({id: "SELECT", label: "select"})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM