gpt4 book ai didi

javascript - Knockout.js 比较 2 个数组而不循环遍历它们

转载 作者:行者123 更新时间:2023-11-28 17:46:51 24 4
gpt4 key购买 nike

我有 2 个可观察数组,在 if 语句中我只想在数组相同的情况下执行某些操作,有没有办法在不循环遍历每个数组的情况下执行此操作?

最佳答案

一般来说,没有。如果你看不到苹果是苹果,橙子是橙子,你就无法区分苹果和橙子。但是,您可以使用启发式/快捷方式,例如:

  • 它们的长度相等吗?如果不是,那么当然,它们是不同的。
  • 元素的顺序重要吗?如果是,当您第一次发现差异时,您可以提前终止并给出否定答案。

关于其他答案中发布的 JSON 方法,还有一些需要注意的事项:

  • 如果项目的顺序无关紧要,它将不起作用
  • 如果数组中的任何对象包含循环引用,它将不起作用
  • 如果存在具有相同属性和值但键顺序不同的对象,则该方法不起作用。例如: { a: 1, b: 2 }{ b: 2, a: 1 } 通常被认为是相等的(除非您明确的目的是对象引用相等) )但它们的 JSON 表示会有所不同。
  • 速度较慢,因为为了生成 JSON,您无论如何都需要迭代所有属性并且您需要迭代 JSON 的各个字符来执行比较。

总而言之,虽然它可能稍微短一些并且更容易阅读,但有一些注意事项,这可能会或可能不会意味着问题,具体取决于您的要求。

关于javascript - Knockout.js 比较 2 个数组而不循环遍历它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46490592/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com