これが私が持っているものです、私はfor inループでそれをやろうとしました、そしてそれは私がそれをするのに必要なことを完全にはやっていない。$ .eachを実行することを考えましたが、配列をループするだけでうまくいく方法がわかりませんでした。
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だけなら問題ありません。複数あるので、他の値を返す必要があります。
キーを検索する関数を実行したい。最小の「b」値を見つけて、「a」キーを返します。上記の場合:2を検索して見つけますが、3を返します
あなたは、変数を作成することができindex
、n
持つ要素のインデックスを格納するため"b"
のオブジェクトと値のプロパティ"b"
プロパティを。for..of
ループを使用してArray.prototype.entries()
配列を反復します。配列"b"
プロパティの現在のオブジェクトが前のオブジェクト"b"
プロパティよりも小さいかどうかを確認します。index
次の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});
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加