JS findIndex方法始终返回-1

时间:2019-02-08 17:44:28

标签: javascript arrays

此:

const pageID: number = 4;

这:

this.charts.findIndex((chart: IChart) => {
  return chart.pageID === pageID;
}));

this.chartsIChart[]的数组,其中包含:

[
     {
          "pageID": 3,
          "zoomable": false
     },
     {
          "pageID": 4,
          "zoomable": false
     },
     {
          "pageID": 5,
          "zoomable": false
     }
]

令人惊讶的是,它总是返回-1。即使我将pageID的值更改为45

通常这是可行的,但它使我发疯。在尝试找到索引之前,我要做的唯一一件事就是合并两个数组并根据pageID参数删除重复的值,如下所示:

  let unique = {};
  this.charts = charts[0].concat(charts[1])
    .filter((chart) => !unique[chart.pageID] && (unique[chart.pageID] = true))
    .sort((a, b) => a.pageID - b.pageID);

this.charts的输出是上面粘贴的带有zoomablepageID属性的数组。

-

即使在node内以正确的顺序运行以上命令,也不是火箭科学,但返回的正确索引在我的情况下为1。有人对这个问题有见识吗?

注意:它正在iOS wkwebview的Cordova应用中运行。

谢谢。

1 个答案:

答案 0 :(得分:0)

您的代码似乎可以正常运行。

where