【问题标题】:JavaScript/jQuery: Array - For In Loop Return Value of Lowest KeyJavaScript/jQuery:数组 - For In Loop 返回值的最低键
【发布时间】:2017-04-25 15:01:20
【问题描述】:

这就是我所拥有的,我尝试在 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 值,我不会有问题。就是有多个,我需要返回另一个值。

【问题讨论】:

  • myKeys.hasOwnProperty(myKeys[key]) 返回一个布尔值

标签: javascript jquery arrays for-loop


【解决方案1】:

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);

【讨论】:

    【解决方案2】:

    像这样?

    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);
            }
        }
    
    };

    【讨论】:

      【解决方案3】:

      我想运行一个通过键搜索的函数。找到最低的 'b' 值,然后返回 'a' 键。在上述情况下:搜索和 找到 2,但返回 3

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

      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}); 

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-06-13
        • 2019-10-25
        • 1970-01-01
        • 2014-12-31
        相关资源
        最近更新 更多