2011-11-30 25 views
11

मेरे पास सम्मिलित एक फ़ंक्शन है जो दो पैरामीटर (नाम, टेलनंबर) लेता है।जावास्क्रिप्ट: एक एसोसिएटिव सरणी में जोड़ना

जब मैं इस फ़ंक्शन को कॉल करता हूं तो मैं एक सहयोगी सरणी में जोड़ना चाहता हूं।

इसलिए उदाहरण के लिए

, जब मैं निम्न कार्य करें:

insert("John", "999"); 
insert("Adam", "5433"); 

मैं करने के लिए यह इतना इस तरह संग्रहीत किया जा चाहते हैं:

[0] 
{ 
name: John, number: 999 
} 
[1] 
{ 
name: Adam, number: 5433 
} 
+4

"सहयोगी सरणी" केवल जावास्क्रिप्ट में ऑब्जेक्ट्स हैं। – zzzzBov

+2

तकनीकी रूप से, आपका मतलब है कि आप वस्तुओं को एक सरणी में जोड़ना चाहते हैं जो संख्यात्मक रूप से अनुक्रमित है। जावास्क्रिप्ट में "सहयोगी" सरणी नहीं है। –

+1

@ माइकल हां, यह सही है। – ritch

उत्तर

27

कुछ इस तरह चाल करना चाहिए:

var arr = []; 
function insert(name, number) { 
    arr.push({ 
     name: name, 
     number: number 
    });   
} 
+5

में जोड़ा है उसे परिभाषित किया है, आप यह इंगित कर सकते हैं कि ओपी * एसोसिएटिव सरणी का उपयोग नहीं कर रहा है; वह वस्तुओं की एक सरणी का उपयोग कर रहा है। –

4
var users = []; 

users.push({name: "John", number: "999"}); 
users.push({name: "Adam", number: "5433"}); 
1

मुझे लगता है कि आप हैं insert के साथ कुछ सरणी संदर्भ का उपयोग करते हुए:

var arr; 
function insert(na, nu) { 
    nu = Number(nu) || 0; 
    //alternatively 
    nu = parseInt(nu, 10); 
    arr.push({ name: na, number: nu }); 
} 
arr = []; 


insert("John", "999"); 
insert("Adam", "5433"); 
-1

, एक "साहचर्य सरणी" जे एस में जैसी कोई अवधि नहीं है, हालांकि आप निम्नलिखित का उपयोग कर सकते हैं:

var list = []; 

function insert(name, number) { 
    list.push({ 
    name: name, 
    number: number 
    }); 
} 
+1

मैं सुझाव दूंगा [इसे पढ़ना] (http://www.pageresource.com/jscript/jarray2.htm) – Leon

+0

एह? यहां [एमएस से एक और] है (http://msdn.microsoft.com/en-us/library/windows/apps/5kh4af6c (v = vs.85) .aspx) – Leon

+2

"सहयोगी सरणी के रूप में ऑब्जेक्ट्स" का मतलब यह नहीं है कि जेएस के पास "सहयोगी सरणी" है। सब कुछ जेएस में एक वस्तु है और आप किसी भी चीज़ को गुण जोड़ सकते हैं लेकिन यह इन ऑब्जेक्ट्स को सहयोगी सरणी नहीं बनाता है। बीटीडब्ल्यू जिन्होंने मेरा जवाब कम किया? :))))))))))) यह मजाकिया है: डी – ioseb

4

कुछ इस तरह का उपयोग करेंगे;

var contacts = []; 
var addContact = function(name, phone) { 
    contacts.push({ name: name, phone: phone }); 
}; 

// usage 
addContact('John', '999'); 
addContact('Adam', '5433'); 

मुझे लगता है कि आप एक पूर्णांक के रूप में फोन नंबर पार्स करने के लिए के रूप में यह व्हाइट-स्पेस को रख सकती प्रयास करना चाहिए नहीं है, धन चिह्न (+) और भी हो सकता है एक (0) शून्य के साथ शुरू करते हैं।

+0

parseInt के बारे में अच्छी बात, मैं सिर्फ "संख्या" देखा - संदर्भ :-) – jabclab

+0

बस धब्बेदार के बारे में नहीं सोचा था, 'contacts' ऊपर वर होना चाहिए' [] '' नहीं {} '। – jabclab

+0

धन्यवाद, मेरी पोस्ट संपादित की – Stefan

2

यदि आप चाहते हैं कि आप अपना कार्य Array.prototype पर जोड़ सकें।

Array.prototype.insert = function(key, val) { 
    var obj = {}; 
    obj[ key ] = val; 
    this.push(obj); 
    return this; 
}; 

और इसे इस तरह उपयोग करें।

var my_array = [].insert("John", "999") 
       .insert("Adam", "5433") 
       .insert("yowza", "1"); 

[ 
    0: {"John":"999"}, 
    1: {"Adam":"5433"}, 
    2: {"yowza":"1"} 
] 
संबंधित मुद्दे