簡體   English   中英

使用AngularJS和Lodash串聯的數組

[英]Array to string with AngularJS and Lodash

我有一個數組($ scope.paxlist)看起來像這樣:

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

我只需要從name取值並將它們轉換為字符串,以便能夠正確使用ng-CSV。 期望的輸出將是這樣的:

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

考慮到我已經加載了Angular和Lodash,任何人都可以指出他們是否已經有一些工具可以輕松地完成這項工作?

使用javascript的原生地圖 ,你可以做到如下

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.

使用Lodash

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

Lodash提供_.pluck從對象列表中提取屬性:

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

您可以像這樣使用_.map_.pluck

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

要么

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

通過使用Mrityunjay的答案,這是將字符串數組轉換為字符串的答案的另一個版本:

const _ = require('lodash');
const data = ['abc','xyz','123'];
const translated = _.map(data).join(', ');
console.log(`result: ${translated}`);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM