【问题标题】:Array.indexOf Not working [duplicate]Array.indexOf 不工作[重复]
【发布时间】:2015-09-01 07:27:37
【问题描述】:

我有一个 angularJS/Typescript 应用程序,我正在尝试检查一个对象是否已经在当前的对象列表中

     if (this.selectedFormatData.indexOf(item) === -1) {
            //doesn't exist so add
            this.selectedFormatData.push(item);
        } else {
            this.selectedFormatData.splice(this.selectedFormatData.indexOf(item), 1);
        }

我以前使用过此代码,它有效,但在此实例中没有。控制台输出表明它应该可以工作?

有什么想法吗?

更新:是的,正确的看起来像重复的对不起。我之前有一段代码,我认为它可以工作,因为它返回 0 而不是 -1。不知道为什么它会返回 0

【问题讨论】:

  • “不工作”到底是什么意思?
  • indexOf 不匹配对象...
  • 我不认为 index of 用于对象数组。

标签: javascript angularjs typescript


【解决方案1】:

正如 cmets 所说,indexOf() 并不是用来比较对象的。之前已在此回答过:Why Array.indexOf doesn't find identical looking objects。

【讨论】:

  • 如果之前已经回答过,请将此问题标记为重复,而不是再次回答。
  • 抱歉,我还没有可以举报的声誉。不会再这样做了。
猜你喜欢
  • 2016-10-23
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-07-25
  • 2015-04-21
  • 2017-12-12
  • 2012-11-15
  • 2018-03-29
相关资源
最近更新 更多