10

2 つの Javascript オブジェクトの共通メンバーを見つける最も簡単な方法は何ですか? この質問は平等に関するものではありません。両方のオブジェクトに存在するだけで、各メンバーの値は気にしません。

これまでに行ったことは次のとおりです(underscore.jsを使用):

_.intersection(_.keys({ firstName: 'John' }), _.keys({ firstName: 'Jane', lastName: 'Doe' }))

これにより['firstName']、期待どおりの結果が得られますが、より簡単で効率的な方法、できればバニラ Javascript を見つけたいと思います。

  • アンダースコアでこれを行うためのより良い/より簡単な方法はありますか?
  • アンダースコアなしでこれを行うためのより良い/簡単な方法はありますか (推奨)?
4

4 に答える 4

5

これは、最新のブラウザーで機能します。

function commonKeys(a, b) {
    return Object.keys(a).filter(function (key) { 
        return b.hasOwnProperty(key); 
    });
};

// ["firstName"]
commonKeys({ firstName: 'John' }, { firstName: 'Jane', lastName: 'Doe' });
于 2013-06-03T02:56:36.623 に答える