2016-12-10 6 views
1

これは私が持っているものですが、forループでそれをやろうとしましたが、必要なことをしていません。私は$。eachをやると思っていましたが、配列をループするだけではどうしたらいいのか分かりませんでした。JavaScript/jQuery:Array - In Loopの場合最も低いキーの戻り値

var myKeys = [{a:1, b:10}, {a:5, b:8}, {a:3, b:2}, {a:1, b:6}]; 

私はキーを検索する機能を実行したいと思います。最も低い 'b'値を見つけ、 'a'キーを返します。上記の場合、検索して2を検索して3を返します({a:3、b:2})

試してみましたが、0,1,2,3(すべてのキー)インデックス。

for (var key in myKeys) { 
    if (myKeys.hasOwnProperty(myKeys[key]) <= 2) { 
    console.log(key); 
    } 
} 

どのように修正するかについての洞察はすばらしいでしょう。それがちょうど1の値だったなら、私は問題はないでしょう。それは複数あり、私は他の値を返す必要があるということです。このような

+0

myKeys.hasOwnProperty(myKeys [キー])bolleanを返します –

答えて

0

私は、キーを通して検索機能を実行したいです。最小値の の 'b'値を見つけ、 'a'キーを返します。あなたがオブジェクトと"b"プロパティの値の"b"性質を持つ要素のインデックスを格納する変数indexnを作成することができます検索し 2を見つけることが、3

を返す:上記の場合。アレイのArray.prototype.entries()を反復するには、for..ofループを使用します。配列"b"の現在のオブジェクトが以前のオブジェクト"b"プロパティよりも小さいかどうかを確認します。 をfor..ofループの後に使用すると、"a"プロパティはmyKeys[index]になります。

var myKeys = [{a:1, b:10}, {a:5, b:8}, {a:3, b:2}, {a:1, b:6}]; 
 

 
let n = index = 0; 
 

 
for (let [key, prop, curr] of myKeys.entries()) { 
 
    if (({b:curr} = prop, curr) < n || !n) [n, index] = [curr, key]; 
 
} 
 

 
let {a} = myKeys[index]; // call `delete n` here if `n`:`2` not needed; 
 

 
console.log({a});

2

var myKeys = [{a:1, b:10}, {a:5, b:8}, {a:3, b:2}, {a:1, b:6}]; 
 
var min = myKeys.reduce(function(current, previous){ 
 
    return (current.b > -1 && current.b < previous.b ? current : previous); 
 
}, {a:-1, b:-1}); 
 
console.log(min);

1

Somehting?

var myKeys = [{a:1, b:10}, {a:5, b:8}, {a:3, b:2}, {a:1, b:6}]; 
 

 
for (var x = 0; x < myKeys.length; x++) { 
 
    var this_key = myKeys[x]; 
 

 
    for (var key in this_key) { 
 
     if (this_key[key] <= 2) { 
 
      console.log(key); 
 
     } 
 
    } 
 

 
};

関連する問題