2014-12-22 17 views
13

Tôi có một mảng ($ scope.paxlist) nhìn như thế này:Array chuỗi với AngularJS và Lodash

[ 
    {"name":"Maria","chosen":false}, 
    {"name":"Jenny","chosen":false}, 
    {"name":"Ben","chosen":false}, 
    {"name":"Morris","chosen":false} 
] 

tôi cần phải thực hiện chỉ có giá trị từ name và chuyển đổi chúng thành một chuỗi để có có thể sử dụng ng-CSV đúng cách. Kết quả mong muốn sẽ là một cái gì đó như thế này:

$scope.var = "Maria, Jenny, Ben, Morris" 

Cân nhắc rằng tôi có góc và Lodash đã nạp, ai có thể chỉ ra nếu họ đã có một số công cụ để thực hiện điều này không đau đớn?

Trả lời

23

Sử dụng bản địa đồ javascript bạn có thể làm điều đó như dưới đây

var data = [ 
    {"name":"Maria","chosen":false}, 
    {"name":"Jenny","chosen":false}, 
    {"name":"Ben","chosen":false}, 
    {"name":"Morris","chosen":false} 
]; 

data.map(function(obj){return obj.name;}).join(', '); // returns the expected output. 

Sử dụng Lodash

_.map(data,'name').join(', ') 
+5

'Pluck() 'của Lodash đã không được chấp nhận (https://github.com/lodash/lodash/wiki/Changelog#v400) ủng hộ bản đồ' map()' của Lodash. – AlecRust

2

Bạn có thể sử dụng _.map hoặc _.pluck, như thế này

$scope.var = _.map($scope.paxlist, 'name').join(', '); 

hoặc

$scope.var = _.pluck($scope.paxlist, 'name').join(', '); 
5

Lodash cung cấp _.pluck để trích xuất một tài sản từ một danh sách các đối tượng:

$scope.var = _.pluck($scope.paxlist, 'name').join(', '); 
0

Bằng cách sử dụng câu trả lời Mrityunjay, đây là một phiên bản khác của câu trả lời để chuyển đổi hàng loạt các chuỗi chuỗi:

const _ = require('lodash'); 
const data = ['abc','xyz','123']; 
const translated = _.map(data).join(', '); 
console.log(`result: ${translated}`); 
Các vấn đề liên quan