如何从我的数组列表中删除 __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.assignJSON.stringify into JSON.parseconst unwrapped = ...this.vars 。它循环了 100000 次迭代,在我的电脑 const unwrapped = ...this.vars 中它比其他人快得多,总共 1462.4199999962002 ms。其他的,分别是5084.745000000112 ms8934.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_

什么时候为列表和 numpy 数组调用 __index__?

_tableView reloadData 使我的应用程序崩溃