2013-09-24 6 views
0

Пусть у меня есть объект JSON ниже:JSON Stringify Формат массива

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

Вы могли бы искать pluck, like 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, чтобы добавить его в старые браузеры.