2013-03-02 31 views
0

我需要傳遞一個數組作爲參數,但我有一個問題,我不知道如何解釋它因此,這裏的例子:如何發送對象作爲參數的Javascript

我有這樣的代碼:

var doc = document; 

    var Class = {}; 

    Class.Validate = function(opc) 
    { 
     alert(opc.id);// 
return Class;// when returns the object the alert trigger as expected showing "#name" 
    }; 

Class.Validate({ 
    id: "#name", 
}) 

但是我嘗試做的是這樣的:

var Class = {}; 
    Class.Validate = function(opc) 
    { 
     alert(opc.name);//when the object is return show display "carlosmaria" 
return Class;// 

    }; 

Class.Validar({ 
    name: {field:"carlos",field:"maria"}, 
}) 

我如何存檔呢?

+1

那些不是數組,而是對象。每個對象只能使用一個密鑰,「{field:...,field:...}」無效。另外,請修復您的「方法」名稱'Validar' /'Validate'。 – Bergi 2013-03-02 16:56:08

+0

我拼寫錯了,thx。你知道如何解決這個問題嗎?我真的需要這個。 – Misters 2013-03-02 16:57:44

回答

2

警報(opc.name)應該返回類似{Object對象}因爲它是一個客體。第二點是你的對象具有屬性的兩倍「字段」。

如果你想使用一個數組,你應該把這種方式:

Class.Validar({ 
    name: ["carlos", "maria"] 
}) 

然後,您可以遍歷opc.name來串聯全名。類似這樣的:

Class.Validate = function(opc) 
{ 
    var name = ""; 
    for (var i=0, len=opc.name.length; i<len; ++i) { 
     name += opc.name[i]; 
    } 
    alert(name);//when the object is return show display "carlosmaria" 
    return Class;// 
}; 
+0

你的循環看起來有點複雜。爲什麼取消引用'len',而不是'opc.name'?爲什麼不使用'opc.name.join(「」)'? – Bergi 2013-03-02 18:29:22

+0

連接方法當然是一個很好的解決方案,只需串聯數組中的字符串即可。但在我看來,這裏的需求不僅僅是連接。所以通過循環數組項,您可以更靈活地做更多的事情。一切都取決於Einer需要做什麼。 – 2013-03-03 16:37:24

相關問題