web-dev-qa-db-ja.com

AngularJSとLodashを使用した文字列への配列

次のような配列($ scope.paxlist)があります。

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

Ng-CSVを適切に使用するには、nameから値のみを取得して文字列に変換する必要があります。目的の出力は次のようになります。

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

AngularとLodashが既にロードされていることを考慮して、これを簡単に行うためのツールが既にある場合、誰かが指摘できますか?

19
Eric Mitjans

Javascriptのネイティブmapを使用すると、以下のように実行できます。

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(', ')
35
Mritunjay

Lodashは _.pluck オブジェクトのリストからプロパティを抽出するには:

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

次のように _。map または _。pluck を使用できます

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

または

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

Mrityunjayの答えを使用することで、これは文字列の配列を文字列に変換する答えの別のバージョンです。

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