3

JavaScript 配列があり、特定のキーの一意の値をすべて取得したいと考えています。次のようにアンダースコアを使用して実装しました。

var v = { "b" : 2 };
var w = { "a" : 4, "b" : 2 };
var x = { "a" : 1, "b" : 2 };
var y = { "a" : 4, "b" : 2, "c" : 3 };
var z = { "a" : null, "b" : 2, "c" : 3 };
var data = [v,w,x,y,z];

// this is the part I'd like to make more concise
var keys = _.map(data,function(d) { return d.a; });
keys = _.unique(keys);
keys = _.reject(keys, function(k) { return _.isUndefined(k) || _.isNull(k)});

http://jsfiddle.net/Gc4tJ/

これを行うにはもっとコンパクトな方法があるはずですが、あるかどうかはわかりません。ここでもアンダースコアを使用する必要はありません。私はd3を使用していますが、d3でこれを行う簡単な方法もわかりませんでした。

4

3 に答える 3