gpt4 book ai didi

ember.js - 你能比较两个 ember 对象吗?

转载 作者:行者123 更新时间:2023-12-01 09:56:47 25 4
gpt4 key购买 nike

我正在从我的数据库中提取一些对象作为 searchResult 对象(我已经定义和设置的模型)。

现在我需要将这些对象放在一个 JS 数组中——如果它们还没有在其中的话。 JS 数组有一个“if --- in array”,但它并不真正比较自定义对象。最简单的解决方案是使用双循环并检查每个传入对象与数组中每个已存在的对象,但我的 searchResult 对象有几个我无法花时间比较的属性。

那么有没有办法在 Ember 本身中检查,例如,if (searchResult1 == searchResult2)?

我知道有类似的混合方法,但我不确定这是否有帮助 - 甚至不确定如何使用它。

最佳答案

Ember 为 Array 原型(prototype)提供了一个有用的方法 addObject 来解决这类问题。 arr.addObject(item) 会将 item 注入(inject)到 arr 中(如果该项目尚不存在)。

http://emberjs.com/api/classes/Ember.MutableArray.html#method_addObject :

var cities = ["Chicago", "Berlin"];
cities.addObject("Lima"); // ["Chicago", "Berlin", "Lima"]
cities.addObject("Berlin"); // ["Chicago", "Berlin", "Lima"]

还有 addObjects,它接受一个项目数组并添加每个不存在的项目:arr.addObjects([itemA, itemB, itemC]) .

编辑:正如 GJK 正确指出的那样,这是使用 === 实现的,因此对于复杂对象,它比较的是引用而不是值。因此,如果您正在添加 Ember 模型,或者如果您正在添加 Primatives,这会很好地工作,但如果您只是比较对象,则会失败。

同样适用于标准 Javascript ([1] === [1]//=> false,但是 var i = [1]; i === i//= > 真)

关于ember.js - 你能比较两个 ember 对象吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24958333/

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