簡體   English   中英

JavaScript 中的 C# 字典等效項

[英]C# Dictionary equivalent in JavaScript

JavaScript 中是否存在任何類型的 c# 字典。 我在 angularjs 中有一個應用程序,它從 MVC Web Api 請求數據,一旦獲得,它就會對其進行一些更改。 所以數據是一個對象數組,它作為對象字典存儲在 MVC Web Api 中,但我在通過網絡傳遞它之前將其轉換為列表。

如果我將字典直接轉換為 JSon,我會得到類似的信息:

array = [ {Id:"1", {Id:"1", Name:"Kevin Shields"}}, 
          {Id:"2", {Id:"2", Name:"Natasha Romanoff"}}
        ];

好吧,這些對象有點復雜,但您現在已經有了一個想法。 問題是這種格式更難操作(我有按字母順序排列的鍵或 ID)。 那么有沒有相當於字典的東西? 做這樣的事情很簡單:

Object o = dictionary["1"];

就是這樣,提前致謝。

你有兩種選擇真的,雖然兩者本質上做同樣的事情,它可能是值得多讀一點在這里,其中談到了關聯數組(字典),如果你想量身定做解決方案:

var dictionary = new Array(); 
dictionary['key'] = 'value'

或者:

var dict = []; 

dict.push({
    key:   'key',
    value: 'value'
});

更新

從 ES2015 開始,您可以使用Map()

const dict = new Map();
dict.set('{propertyName}', {propertyValue});

我知道這個問題有點舊,但在 ES2015 中有一個名為 map 的新數據結構,它更類似於您將在 C# 中使用的字典。 所以現在你不必將一個偽裝成一個對象或一個數組。

MDN 很好地涵蓋了它。 ES2015地圖

是的,它被稱為object 對象具有鍵和值,就像 C# 字典一樣。 鍵總是字符串。

在您的情況下,對象將如下所示:

{
    "1": {
        "Id": 1, 
        "Name":" Kevin Shields"
    }, 
    "2": {
        "Id": 2, 
        "Name": "Natasha Romanoff"
    }
}

默認的 ASP.net 序列化程序生成丑陋的 JSON。 更好的選擇是Json.NET

我的例子:

var dict = new Array();
// add a key named id with value 111
dict.id = 111;
//change value of id
dict.id = "blablabla";
//another way
// add a key named name with value "myName"
dict["name"] = "myName";
//and delete
delete dict.id;
delete dict["name"]

//another way
dict = {
  id:    111,
  "name": "myName"
};

//And also another way create associate array
var myMap = { key: [ value1, value2 ] };

暫無
暫無

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

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