如何从我的数组列表中删除 __ob__: Observer?
Posted
技术标签:
【中文标题】如何从我的数组列表中删除 __ob__: Observer?【英文标题】:how can i remove __ob__: Observer from my array list? 【发布时间】:2020-04-23 21:52:44 【问题描述】:我有一个数组
data = [38589, 3, __ob__: Observer];
我想发送一个 put 请求 API,其中包含发送此数组的主体。并得到 400 错误?
这__ob__: Observer
是我发送这些数据的问题吗?如果它是影响错误的那个,我可以知道如何从我的数组中删除它吗?
【问题讨论】:
这能回答你的问题吗? Vue JS returns [__ob__: Observer] data instead of my array of objects 可能不是__ob__
导致您的问题。您可以使用浏览器开发人员工具的“网络”选项卡检查请求的详细信息。这应该可以让您准确查看发送的内容,并从那里找出问题所在。
【参考方案1】:
如果你想在没有观察者的情况下获得数组的最终值,你可以将其转换为 JSON 然后再返回:
const finalData = JSON.parse(JSON.stringify(data));
【讨论】:
不知道有没有人试过衡量哪种方法效率更高,所以我用了一个简单的比较模型。如果有人以更合适的方式确认它,那将是受欢迎的。我的测试标准是比较我知道如何转换的 3 种方式:Object.assign
、JSON.stringify into JSON.parse
、const unwrapped = ...this.vars
。它循环了 100000 次迭代,在我的电脑 const unwrapped = ...this.vars
中它比其他人快得多,总共 1462.4199999962002 ms
。其他的,分别是5084.745000000112 ms
和8934.004999988247 ms
。【参考方案2】:
我知道这已经 3 个月大了,但你也可以使用它
const final_data = Array.from(data);
【讨论】:
这对我不起作用,扩展运算符或 object.assign() 也不起作用。接受的答案是我唯一可以开始工作的答案。以上是关于如何从我的数组列表中删除 __ob__: Observer?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 vuejs 中获取价值 [__ob__: Observer]
Flutter 如何使用 JSON 从 Rest API 获取 List<String> _list 数组字符串
iOS 11. KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_
iOS 11. KVO_IS_RETAINING_ALL_OBSERVERS_OF_THIS_OBJECT_IF_IT_CRASHES_AN_OBSERVER_WAS_OVERRELEASED_OR_