JavaScript / jQuery:Array - 用于最低密钥的In Loop返回值

时间:2016-12-10 04:26:27

标签: javascript jquery arrays for-loop

这就是我所拥有的,我试图在for循环中做到这一点,而且它并没有完全按照我的需要去做。我想过做$ .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值,我就不会有问题。这是有多个,我需要返回其他值。

3 个答案:

答案 0 :(得分:2)

&#13;
&#13;
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);
&#13;
&#13;
&#13;

答案 1 :(得分:1)

像这样吗?

&#13;
&#13;
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);
        }
    }

};
&#13;
&#13;
&#13;

答案 2 :(得分:0)

  

我想运行一个通过键搜索的函数。找到最低点   &#39; B&#39;值,然后返回&#39; a&#39;键。在上面的例子中:搜索和   找到2,但返回3

您可以创建变量indexn来存储具有"b"对象属性和"b"属性值的元素的索引。使用for..of循环迭代Array.prototype.entries()数组。检查数组"b"属性的当前对象是否小于先前对象"b"属性。在index循环后使用for..of获取"a"的{​​{1}}属性。

&#13;
&#13;
myKeys[index]
&#13;
&#13;
&#13;