2017-09-01 22 views
1

まあ、私はES6でシナリオを持っています、私は現在のモジュールにvuejsを使用しています。オブジェクト値が文字列値と等しいかどうかをチェック

配列オブジェクトに文字列値が存在するかどうかを確認する必要があります。

let obj1 = [{name: "abc ced", id: 1}, 
      {name: "holla' name", id: 2}, 
      {name: "3' name", id: 3}] 
let obj2 = { key: "3' name" , key1: 2 } 

obj2の名前プロパティ値がobj1に存在するobj1のオブジェクトを取得する必要があります。それを好きにする

_.each(obj1, function(obj){ 
    for (var k in obj) { 
     if (!obj.hasOwnProperty(k)) continue 
      if (obj[k] === obj2.key) { 
        console.log(obj) 
      } 
     } 
    }) 

私に何かが不足していますか?コンソールは決して値を記録しません。

注:私はloadashを使用して、そしてそれが動作する整数の試合のためにそう

let result = _.find(obj1 , {id: obj2.key1}) 
console.log(result) 

を使用しようとするならば、それは、動作しますあまりにも

let result = _.find(obj1 , {name: obj2.key}) 
console.log(result) 

見つける使用しようとしたのです

良いですが、文字列のためのコンソールはありません。

と表示されます。上記のように他の解決策を試しました。

注:大文字と大文字の問題があるため、すべてがうまく機能していました。低くするので、秘密同等の文字列と大文字、あなたはで、少なくともあなたは条件にtrueを返す最初のオブジェクトを取得したい場合は、そうでない場合は、あなたをfind()を使用することができ、これらの愚かな過ち

歓声

+0

あなたは 'obj1.key'をチェックしています。 'obj2.key'でなければなりません –

+0

あなたは一つのことをクリアしてください、あなたは' name'のようなobj1からいくつかの特定のキーをチェックしたいのですか?obj1にあるキーと一致するものを探したいですか? – RaghavGarg

+0

@RaghavGargまあ、obj1の中にobj2.keyと同じ名前のオブジェクトがあるかどうかをチェックしたいのですが。だからobj1の特定のキー名です –

答えて

3

をしないので、 filter()を使用できます。あなたはlodash _.findを使用することができます

let obj1 = [{name: 'abc ced', id: 'ced'}, 
 
      {name: 'holla name', id: 'xyz'}] 
 
let obj2 = { key: 'abc ced' } 
 

 
var result = obj1.find(({name}) => obj2.key == name) 
 
console.log(result)

+0

返事をいただきありがとうございます。運が良かったですが、更新された質問が表示されますか、ありがとうございます。 –

0

lodash findについてもっと読む。

let obj1 = [ 
 
    { name: "abc ced", id: "ced"}, 
 
    { name: "holla' name", id: "xyz"}, 
 
    { name: "3' name", id: "xz"}, 
 
    { name: 5, id: "yz"} 
 
]; 
 
let obj2 = { key: "3' name" } 
 
let obj3 = { key: 5 } 
 

 
var result = _.find(obj1, { name: obj2.key }); 
 
console.log(result) 
 

 
var result = _.find(obj1, { name: obj3.key }); 
 
console.log(result)
<script src="https://cdn.jsdelivr.net/npm/[email protected]/lodash.min.js"></script>

関連する問題