2013-09-24 140 views
0

讓說,我有以下JSON對象:JSON字符串化格式化陣列

var name = [ 
{ 
    "first": "juan", 
    "last": "delaCruz" 
}, 
{ 
    "first": "james", 
    "last": "bond" 
} 

]

我們可以使用JSON.stringify有輸出:

juan, james 
+0

'JSON.stringify'不能生成字符串'juan,james',因爲這不是合法的JSON。 –

+1

注意:第一個片段不是JSON。這是一個JavaScript文字。類似的語法;不同的用途(代碼或數據)。 –

+0

編寫替代功能並將兩者混合在一起 –

回答

1

你可能會尋找plucklike in underscore。基本實現看起來是這樣的:

function pluck(collection, key) { 
    return collection.map(function(el) { 
     return el[key]; 
    }); 
} 


var name = [{ 
    first: 'juan', 
    last:'dela Cruz' 
}, { 
    first: 'james', 
    last:'bond' 
    } 
]; 

var fullname = pluck(name, 'first'); 
1

由於預期的輸出不會似乎是有效的JSON,你將不能夠只JSON.stringify()得到它。

但是,你可以結合.map().join()來完成它:

var firsts = name.map(function (entry) { 
    return entry.first; 
}); 

console.log(firsts.join(', ')); // juan, james 

.map()是用新的ECMAScript 5,所以它會在IE 9和其他現代瀏覽器一應俱全。而且,MDN包含一個good polyfill以將其添加到舊版瀏覽器中。