【问题标题】:findIndex() javascript array objectfindIndex() javascript 数组对象
【发布时间】:2017-06-06 14:52:54
【问题描述】:
 var array = [{"one":1, "two":2},{"one":3, "two":4}];

            var result = array.findIndex(function (value) {
                if (value === 2) {
                    return false;
                }
                return true;
            });

            console.log(result); 

我在控制台中不断收到“0”。 我应该如何改变(值===2)? 我尝试更改为 (value === {"two":2}) 但仍然返回“0”。

还有其他适合的数组方法吗?

【问题讨论】:

  • 因为你在任何情况下都在做return true。还有value === 2 是什么意思。值将是一个对象
  • 您想查看哪个属性?数组中没有value
  • 值永远不会是 2 它将是 {"one":1, "two":2}{"one":3, "two":4}
  • 在 if() 之前将 console.log 放入 findindex 回调中,并打印传递给回调的值。您可能会了解您的价值是什么以及您正在检查它。
  • @JaromandaX 我只想要 {"one":1, "two":2} 的索引来显示我应该如何更改 if (value === 2) ?

标签: javascript arrays


【解决方案1】:

您需要检查数组对象的属性之一。然后返回检查结果。

var array = [{ one: 1, two: 2 }, { one: 3, two: 4 }],
    result = array.findIndex(function(object) {
        return object.two === 2;
    });

console.log(result);

【讨论】:

  • 具有讽刺意味的是,这也会导致 0 被输出 - 令 OP 认为 0 不正确感到惊讶:p
  • 哦,我并没有不同意你的回答:p
  • 很抱歉问@NinaScholz,如果结果小于零意味着它不匹配吗?
  • 对它返回-1,因为这个数字不是数组的真正索引。
  • 非常感谢您,我还在学习中……您帮了很多忙……再次感谢您@NinaScholz
【解决方案2】:

数组的第一个参数 .change 使用value.two .its 对象属性不是数组

var array = [{"one":1, "two":2},{"one":3, "two":4}];
            var result = array.findIndex(function (value) {
                               return value.two == 2;
            });
            console.log(result); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 2016-04-22
    相关资源
    最近更新 更多