2011-09-22 27 views
1

我有一個對象:從JavaScript中的對象值生成字符串的最短方法

var obj = { 
    a: 'hello', 
    b: 32, 
    c: 'foo' 
} 

我需要提取到以下字符串:

'hello, 32, foo' 

我當前的方法是:

var ar = []; 
for (var key in obj){ 
    if (obj.hasOwnProperty(key)){ 
    ar.push(obj[key]); 
    } 
} 
var str = ar.join(', '); 

有沒有比這更短的方法?

允許使用ExtJs(不能使用jQuery)。

+1

如果您沒有編寫或包含任何使用可枚舉屬性擴展Object.prototype的代碼,那麼您可以省略obj.hasOwnProperty(key),並使用for(var key in obj)ar.push (obj [key]);' – user113716

+0

是的,hasOwnProperty現在可以被刪除,但obj可能是未來更復雜的對象。 – Guid

+0

在這種情況下,我會說你只是將你的代碼放到一個接受對象的函數中,並且加入所需的連接字符串,然後返回結果。 *(我不知道ExtJs中是否有任何東西可用)* – user113716

回答

1

看起來已經很短暫了。什麼是缺少代碼的理由?除了提供用於抽象迭代的自定義數組函數之外,Ext JS沒有任何內置的功能,但生成字符串所需的邏輯仍然是自定義代碼。你的日常生活對我來說很好。

相關問題