2017-11-16 8 views
0

私は比較的新しいLodashです。私は本当に簡単なことをしようとしています。Lodashを使用して、キーの配列に基づいて既存のオブジェクトから新しいオブジェクトを作成します

どのような既存のLodashメソッドを使用してキーとオブジェクトの配列を取得し、渡されたキーに一致するプロパティ(元のオブジェクトから)のみを含む新しいオブジェクトを返すのでしょうか。

let _ = require("lodash"); 

// DOES THE FUNCTION BELOW ALREADY EXIST? 
let only = function (wanted, srcList) { 
    return _.reduce(wanted, function(out,key){ 
    if(_.has(srcList, key)){ 
     out[key] = srcList[key] 
    } 
    return out; 
    },{}) 
} 


let src = { 
    w: "This is doble vuu", 
    x: "This is X", 
    y: "This is why?", 
    z: "This is zeee!" 
}; 

var want = ['x','z']; 

let newObject = only(want,src); 

console.log(newObject) 

私が働いているコードですが、どれほど単純なものであっても、諺のホイールを再発明したくありません。

+1

あなたが望む機能は[https://lodash.com/docs/4.17.4#ピック) –

答えて

0

_.pickは、Gruff Bunnyのコメントのように完全に機能します。私はLodashで利用可能な何十もの方法を行っていたときに、なぜそれがもっと明白に見えなかったのかわかりません。

1

私は_mapが欲しいと思います。

文字列を2番目の引数として渡すと、指定されたキーを持つオブジェクトが返されます。

関連する問題