2011-07-21 18 views
16

我想存儲類似的信息:JavaScript中是否有任何鍵/值對結構?

僞代碼

array(manager) = {"Prateek","Rudresh","Prashant"}; 
array(employee) = {"namit","amit","sushil"}; 
array(hr) = {"priya","seema","nakul"}; 

我可以使用什麼樣的數據結構?

+0

不知道我跟着,如:var managers = [「Prateek」,「Rudresh」,「Prashant」]; ? – brendan

回答

34

您可以使用arrays存儲數據的列表;和objects的鍵值


在你的情況下,你可能會使用這兩種:

var data = { 
    'manager': ["Prateek","Rudresh","Prashant"], 
    'employee': ["namit","amit","sushil"], 
    'hr': ["priya","seema","nakul"] 
}; 

這裏,data是一個對象;其中包含三個數組。

13

的對象:

var myobj = { 
    "manager": ["Prateek","Rudresh","Prashant"], 
    "employee": ["namit","amit","sushil"], 
    "hr": ["priya","seema","nakul"] 
} 

alert(myobj['employee'][1]); // Outputs "amit" 
+0

是的,我認爲我正在尋找它。 –

+0

你是否認爲'{「Prateek」,「Rudresh」,「Prashant」}是一個數組? – jfriend00

+0

@ jfriend00是的,我認爲他想將它們用作數組。 – Paulpro

2

是的,有:

var theArray = {}; 
theArray["manager"] = ["Prateek","Rudresh","Prashant"]; 
theArray["employee"] = ["namit","amit","sushil"]; 
theArray["hr"] = ["priya","seema","nakul"]; 
+1

這是不正確的,任何對象都是那個結構。你的例子工作,因爲一個數組只是一個對象。 –

+0

@Emil Ivanov:這是完全正確的,它創建了一個2維數組。請詳細說明哪部分不正確 – Ibu

+1

JavaScript中的數組只能由數字索引。通過字符串索引它們是可能的,因爲js中的任何對象都可以通過字符串索引。 –

-1

即使你可以使用的東西如下: -

var obj = new Object(); 

obj.name = 'Jatin'; 
obj.place = 'Delhi'; 
10

一個正常的對象就行了:

var a = { 
    key1: "value1", 
    key2: ["value2.1","value2.2"] 
    /*etc*/ 
} 

訪問有:

a.key1 
a["key1"] 
2

或者使用這樣的JSON。你的僞代碼有一點變化,但它會是可以接受的並且是可擴展的。

var Person = [ 
{ 
    "name": "Prateek", 
    "position": "manager"}, 
{ 
    "name": "James", 
    "position": "employee"} 

]; 
6

,你可以將它們存儲在對象的數組:

var Staff = [ 
     { name: 'Prateek', role: manager }, 
     { name: 'Rudresh', role: manager }, 
     { name: 'Prashant', role: manager }, 
     { name: 'Namit', role: employee }, 
     { name: 'Amit', role: employee }, 
     { name: 'Sushil', role: employee }, 
     { name: 'Priya', role: hr }, 
     { name: 'Seema', role: hr }, 
     { name: 'Nakul', role: hr }, 
    ]; 

添加一個ID屬性可能也取決於你的應用程序非常有用。即

{ id: 223, name: 'Prateek', role: manager }, 
3

對於ES2015/ES6,您有Map類型。

使用地圖你的代碼看起來像

const map = new Map([ 
 
    ['manager', ['Prateek', 'Rudresh', 'Prashant']], 
 
    ['employee', ['namit', 'amit', 'sushil']], 
 
    ['hr', ['priya', 'seema', 'nakul']] 
 
]) 
 

 
console.log(...map.entries())

獲得自己的價值,爲什麼你不能使用JavaScript陣列可以使用Map.get('key')方法

相關問題