【问题标题】:Javascript filter function return different result in productionJavascript过滤器函数在生产中返回不同的结果
【发布时间】:2020-12-29 16:23:56
【问题描述】:

我的代码是:

audio_files = [{id: "78", isProfileImg: "1"},{id: "145", isProfileImg: "0"}];
console.log(audio_files.filter((x) => x.id == 78));

开发机中的结果

[{…}]
0: {id: "78", isProfileImg: "1"}
length: 1
__proto__: Array(0)

生产结果

[{}]
0:length: 0
__proto__: Array(0)

有人遇到过同样的问题吗?

【问题讨论】:

  • 首先,考虑使用=== 而不是==。然后,确保 dev 和 prod 中的两个数据集相同。如果是,它们应该工作相同
  • 好像你在生产中没有id为78的文件,数据集是一样的
  • @CertainPerformance "78" === 78false"78" == 78true。我认为在这种情况下== 更好?
  • @Nick 显式使事情更清楚,并且还会显示是否存在强制问题。如果数据中确实包含id的字符串,那么就做=== '78'吧?
  • @CertainPerformance 是的好点 :)

标签: javascript production-environment


【解决方案1】:
  1. 在过滤之前检查数组长度,或者验证您的数据是否该特定 ID 可用。

【讨论】:

  • 嗨,我已经检查过了,我在两个 evn 中都有相同的数组,但过滤函数后的结果不一样:(
【解决方案2】:

通过编辑ID检测脚本解决

【讨论】:

    猜你喜欢
    • 2016-01-28
    • 2021-05-31
    • 1970-01-01
    • 2017-08-07
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2013-02-10
    • 2018-09-02
    相关资源
    最近更新 更多